vim 忽略 .vimrc 中提供的键映射
vim ignores keymapping, provided in .vimrc
我有一个 .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>
更改为 insert-mode。
我的 git-repository 没有显示任何变化,但是 :map
命令 returns:
o <NL> <C-W>j
<C-K> <C-W>k
<C-L> <C-W>l
<C-H> <C-W>h
可能是什么原因? <NL>
代表什么?
- 在 vim 开始后执行
:map <c-j> <c-w>j
,修复映射。
noremap <c-j> <c-w>j
并不能解决问题
- 将映射移动到 vimrc 文件的末尾也不会成功...
编辑 1.0:
:verbose map <c-j>
returns:
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 使映射再次工作。但是我怎样才能将两者结合起来呢?插件+映射?
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>)
我有一个 .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>
更改为 insert-mode。
我的 git-repository 没有显示任何变化,但是 :map
命令 returns:
o <NL> <C-W>j
<C-K> <C-W>k
<C-L> <C-W>l
<C-H> <C-W>h
可能是什么原因? <NL>
代表什么?
- 在 vim 开始后执行
:map <c-j> <c-w>j
,修复映射。 noremap <c-j> <c-w>j
并不能解决问题- 将映射移动到 vimrc 文件的末尾也不会成功...
编辑 1.0:
:verbose map <c-j>
returns:
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 使映射再次工作。但是我怎样才能将两者结合起来呢?插件+映射?
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>)