27

我想F2用以下条目映射我的书呆子树:

map <F2> :NERDTreeToggle<CR>

但即使在此之前,在保存 vimrc 之后,每当我按 时F2,它只会切换光标所在字母的大小写。后来发现任何功能键都可以。F5切换 5 个字符的大小写,依此类推。这是因为其他一些插件吗?我目前使用 c.vim、snippetsEmu、surround、nerdtree 和 minibufexpl

我的 vimrc 中没有任何功能键的键映射。

4

2 回答 2

30

您的问题是 vim 不知道您按下时终端会发出什么<F2>。在某些终端上,它会发出类似<Esc>[12~的信息,因此 vim 退出当前模式(或者如果不能退出,则发出哔声)(<ESC>),什么都不做([1:后面必须有一些键[,但不是 1,所以它什么也不做)并改变大小写两个字母 ( 2~)。因此,您应该打开 .vimrc 并在其中写入以下内容:

设置 <F2>=<C-v><F2>

where<C-v><F2>表示您必须按<C-v>然后<F2>。这一行应该告诉 Vim 当你按下 时终端发出的确切代码序列<F2>。之后,使用noremap <F2> whatever它应该可以工作。如果它不是您使用的唯一终端,那么您可能希望在此行之前和之后放置。if $TERM==#"<C-r>=$TERM<CR>"endif

于 2010-08-19T10:35:51.600 回答
7
:map <F2> :NERDTreeToggle<CR>

启动 Vim 后,您可以查看

:map <F2>

F2 映射到什么。插件可能会更改映射(在 .vimrc 中不可见)

于 2010-08-19T08:36:12.403 回答