Vim和NERDTree - 重新映射输入功能

时间:2013-05-13 13:41:30

标签: vim nerdtree

我正在尝试将 Alt + x 组合重新映射到NERDTree Enter 功能。让我解释一下:当我浏览NERDTree中的文件/文件夹时,我可以使用 Enter 打开文件/展开文件夹。

我想用左手键组合来完成这项操作,例如 Alt + x 。我尝试将这些密钥重新映射到<CR><Enter>,但这些密钥都没有工作:

# in ~/.vimrc
nnoremap ≈ <Enter>     " doesn't work
nnoremap ≈ <CR>        " doesn't work
nnoremap ≈ <CR><Enter> " doesn't work

当我说“不起作用”时,我的意思是当我在浏览文件/文件夹时按 Alt + x 时,我会移动到下一个文件/文件夹(我想这就像移动到下一行)。

注意我在Mac上,所以实际上是来自 Alt + x 的输出(它已经过测试其他映射)。

我应该重新映射什么?

1 个答案:

答案 0 :(得分:5)

使用 Alt <M-<A-)的修饰符在很多环境中都很麻烦,特别是在使用终端多路复用器的SSH终端上,因此我尽量不要用它。即使我确实让它在我的桌面上工作,但由于某些不明原因,它可能无法在其他地方工作。有很多关键词可以采取。除非你有充分的理由使用 Alt ,否则我会反对它。


话虽如此,当按 Enter (或 o )使用:verb命令在NERDTree中打开文件夹时,您可以找到正在调用的命令。必须在选择NERDTree窗格时运行:

:verb map <Enter>
n  o           *@:call nerdtree#invokeKeyMap("o")<CR>
        Last set from ~/.vim/bundle/nerdtree/lib/nerdtree/key_map.vim

既然你是正确的命令,那么将其他内容重新绑定到<Enter><CR>就没有意义了。
通常你会使用<A-x>,但如果适合你,那我觉得很好:

:nnoremap ≈ :call nerdtree#invokeKeyMap("o")<CR>

底线:
我想请注意,我不明白你为什么要使用这样的映射。你可以使用 o ,你应该/应该在这个范围内(对于 Enter 也是如此)。