vim nmap非常奇怪的行为

vim nmap非常奇怪的行为,vim,Vim,我的.vimrc中有一些nmap: nnoremap ( ()<Esc>i nnoremap [ []<Esc>i nnoremap { {}<Esc>i nnoremap(()i nnoremap[]i nnoremap{{}i “(”很好用。如果我键入“(”我会得到“()”。但是如果我键入“[”或“{”我会在“[”和“]”之间得到3个额外的空格字符 我不知道是什么导致了这种行为。我想知道如何跟踪nmap进程以便捕获错误。您的nnoremap(或inor

我的.vimrc中有一些nmap:

nnoremap ( ()<Esc>i
nnoremap [ []<Esc>i
nnoremap { {}<Esc>i
nnoremap(()i
nnoremap[]i
nnoremap{{}i
“(”很好用。如果我键入“(”我会得到“()”。但是如果我键入“[”或“{”我会在“[”和“]”之间得到3个额外的空格字符


我不知道是什么导致了这种行为。我想知道如何跟踪nmap进程以便捕获错误。

您的nnoremap(或inoremap)命令中很可能有尾随空格。请删除它们

您可以通过执行
:set list
并查看
$
或行尾字符的位置来检查这一点


尾随空白是映射的一部分,因为映射应该把光标放在括号中间,所以额外的空白被放在那里。

这是怎么工作的?你使用的是代码> NNORMAP 不<代码> IORMAP 。对不起,IMAP到NMAP!