Vim:在长柔软包裹线的环境中相互矛盾的键映射PLUS reletivenumber

时间:2015-02-23 12:27:52

标签: vim vim-plugin

同时启用以下两个选项非常令人头疼:

" 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.

相对行号非常简洁有用,但是,当我的文本包含已经包裹的长行时,"向下跳5行"并且"在长长的包裹线内移动"成为一组矛盾的任务。

为了在长包裹线上移动,我需要使用以下映射。

nnoremap  j gj
nnoremap  k gk
vnoremap  j gj
vnoremap  k gk

然而,5j无法再触发向下跳5行。我应该输入#j,其中# ="视觉"在当前行和第5行之间包裹线条。

键映射中存在这种矛盾的解决方案吗?是否有一个插件可以为柔和的线条编号?这是我能想到的唯一解决方案.t

提前谢谢。

1 个答案:

答案 0 :(得分:0)

没有选项可以启用“轻柔包装的相对数字”,并且它不会非常有用,因为偏移不仅用于j / k导航,还用于各种类型的其他命令,以及:[range],这些将继续通过物理,强硬的方式解决。

在引入'relativenumber'之前,有RltvNmbr.vim plugin,它使用标志列模拟该选项。您可以尝试修改它以适应您的想法。考虑到上述限制并且插件使用了凌乱的解决方法,我宁愿建议您定义相反的映射:

nnoremap  gj j
nnoremap  gk k
vnoremap  gj j
vnoremap  gk k

通过这种方式,您可以使用快速j等命令轻松导航包裹的线条,对于需要相对跳跃的(较少)场合,请使用[N]gj