我想通过以下条目将我的F2
映射为nerdtree:
map <F2> :NERDTreeToggle<CR>
但即使在此之前,在保存vimrc之后,每当我按下F2
时,它只会切换光标所在字母的大小写。后来发现任何功能键都能做到。 F5
切换5个字符的大小写,依此类推。这是因为其他一些插件吗?我目前使用c.vim,snippetsEmu,surround,nerdtree和minibufexpl
我的vimrc中的任何功能键都没有键映射。
答案 0 :(得分:19)
您的问题是,当您按<F2>
时,vim不知道终端发出了什么。在某些终端上它会发出类似<Esc>[12~
的内容,因此vim退出当前模式(或者如果不能发出蜂鸣声)(<ESC>
),什么也不做([1
:必须有一些[
之后的密钥,但不是1,所以它什么都不做)并更改两个字母(2~
)的大小写。所以,你应该打开.vimrc并写下以下内容:
set <F2>=<C-v><F2>
其中&lt; C-v&gt;&lt; F2&gt; 表示您必须按<C-v>
然后按<F2>
。该行应告诉Vim按下<F2>
时终端发出的确切代码序列。之后,使用noremap <F2> whatever
,它应该工作。如果它不是您使用的唯一终端,那么您可能希望将if $TERM==#"<C-r>=$TERM<CR>"
放在此行之前,然后endif
之后。
答案 1 :(得分:5)
:map <F2> :NERDTreeToggle<CR>
启动Vim后,您可以查看
:map <F2>
F2映射到的是什么。插件可能会更改映射(在.vimrc中不可见)