我有一个.vimrc文件(托管在git-repo中),包含以下键映射:
map <c-j> <c-w>j
map <c-k> <c-w>k
map <c-l> <c-w>l
map <c-h> <c-w>h
但是最近,地图<c-j>
停止了工作,导致<c-j>
更改为插入模式。
我的git-repository没有显示任何更改,但:map
命令返回:
o <NL> <C-W>j
<C-K> <C-W>k
<C-L> <C-W>l
<C-H> <C-W>h
可能是什么原因? <NL>
代表什么?
:map <c-j> <c-w>j
,修复映射。noremap <c-j> <c-w>j
无法解决问题编辑1.0:
:verbose map <c-j>
返回:
v <NL> <Plug>IMAP_JumpForward
Last set from ~/.vim/bundle/vim-latex-suite/plugin/imaps.vim
n <NL> <Plug>IMAP_JumpForward
Last set from ~/.vim/bundle/vim-latex-suite/plugin/imaps.vim
o <NL> <C-W>j
Last set from ~/.vimrc
编辑2.0:
禁用vim-latex-suite使映射再次起作用。但我如何将两者结合起来呢?插件+映射?
答案 0 :(得分:2)
vim-latex-suite 插件会覆盖您的<C-J>
映射。 (我不知道它为什么定义全局映射; Latex文件的缓冲区本地可能就足够了,但我不知道插件。)当插件提供<Plug>
映射时,很容易重新定义您~/.vimrc
中存在冲突,例如:
nmap <Leader>j <Plug>IMAP_JumpForward
在:help key-notation
下,您会看到<C-J>
和<NL>
是等效的。可能控制键代码具有特殊含义:
<NL> linefeed CTRL-J 10 (used for <Nul>)