Vim noremap 仍然导致旧映射处于活动状态

Vim noremap 仍然导致旧映射处于活动状态

这是我的.vimrc

set mouse=a
set ttymouse=xterm2
set number
set smartindent
set tabstop=4
set shiftwidth=4
set expandtab
inoremap {      {}<Left>
inoremap {<CR>  {<CR>}<Esc>O
inoremap {{     {
inoremap {}     {}
inoremap (      ()<Left>
inoremap [      []<Left>
noremap ; l 
noremap l k 
noremap k j 
noremap j h 
set nocompatible
filetype plugin on

我尝试将 hjkl 重新映射到 jkl;,因为这对我来说更有意义(我不必将手从主行移开即可移动)。但似乎旧的映射仍然存在。所以现在 hjkl 和 jkl; 会将光标移向一个方向,在尝试向上或向下移动时产生对角线光标移动。

我做错了什么?noremap 应该删除旧的映射,对吗?

编辑:我是个白痴,vimrc 中有空格把它搞砸了。

答案1

指定新键绑定的行末尾的尾随空格也会导致包含额外的空格键击。这就是为什么 OP 在重新映射hjkl到时会出现对角光标移动的原因jkl;。这也适用于任何重新映射。

例如,如果我的 .vimrc 文件中有以下内容:

noremap a ik

aik将按顺序映射到按键(即按下i然后按k)。

相关内容