Vim:在具有长软包装线的设置中存在矛盾的键映射 PLUS reletivenumber
Vim: contradictory key-mappings in a setting with long soft-wrapped lines PLUS reletivenumber
同时启用以下两个选项很头疼:
" Line numbering.
set number
set relativenumber
" The master setting (with wrapping)
set wrap
set linebreak
set nolist " list disables linebreak
set textwidth=0
set wrapmargin=0
set formatoptions+=l "No reformatting while typing on the exciting line.
相对行号非常整洁且有用,但是,当我的文本带有已换行的长行时,"jumping down by 5 lines" 和 "moving within the long wrapped line" 成为一组矛盾的任务。
为了绕过长的回绕线移动,我需要使用以下映射。
nnoremap j gj
nnoremap k gk
vnoremap j gj
vnoremap k gk
但是,5j
不再触发向下跳5行。我应该键入 #j
,其中 #
= 当前行和向下第 5 行之间的 "visually" 换行数。
有解决键映射矛盾的办法吗?会不会有一个插件可以给软包线编号?这是我能想到的唯一解决方案of.t
提前谢谢你。
没有启用 "softly-wrapped relativenumbers" 的选项,它不会很有用,因为偏移量不仅用于 j
/ k
导航,而且还用于各种其他命令,以及 :[range]
,这些将继续通过物理、硬线解决。
在引入 'relativenumber'
之前,有 RltvNmbr.vim plugin,它使用符号列模拟该选项。您可以尝试修改它以适应您的想法。考虑到上述限制以及该插件使用了一个混乱的解决方法,我宁愿建议您也定义相反的映射:
nnoremap gj j
nnoremap gk k
vnoremap gj j
vnoremap gk k
有了它,您可以使用快速 j
等命令轻松导航回绕行,并且对于需要相对跳转的(较少)情况,请使用 [N]gj
.
同时启用以下两个选项很头疼:
" Line numbering.
set number
set relativenumber
" The master setting (with wrapping)
set wrap
set linebreak
set nolist " list disables linebreak
set textwidth=0
set wrapmargin=0
set formatoptions+=l "No reformatting while typing on the exciting line.
相对行号非常整洁且有用,但是,当我的文本带有已换行的长行时,"jumping down by 5 lines" 和 "moving within the long wrapped line" 成为一组矛盾的任务。
为了绕过长的回绕线移动,我需要使用以下映射。
nnoremap j gj
nnoremap k gk
vnoremap j gj
vnoremap k gk
但是,5j
不再触发向下跳5行。我应该键入 #j
,其中 #
= 当前行和向下第 5 行之间的 "visually" 换行数。
有解决键映射矛盾的办法吗?会不会有一个插件可以给软包线编号?这是我能想到的唯一解决方案of.t
提前谢谢你。
没有启用 "softly-wrapped relativenumbers" 的选项,它不会很有用,因为偏移量不仅用于 j
/ k
导航,而且还用于各种其他命令,以及 :[range]
,这些将继续通过物理、硬线解决。
在引入 'relativenumber'
之前,有 RltvNmbr.vim plugin,它使用符号列模拟该选项。您可以尝试修改它以适应您的想法。考虑到上述限制以及该插件使用了一个混乱的解决方法,我宁愿建议您也定义相反的映射:
nnoremap gj j
nnoremap gk k
vnoremap gj j
vnoremap gk k
有了它,您可以使用快速 j
等命令轻松导航回绕行,并且对于需要相对跳转的(较少)情况,请使用 [N]gj
.