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

wha*_*ide 2 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
Run Code Online (Sandbox Code Playgroud)

当我说"不工作"时,我的意思是当我在浏览文件/文件夹时按Alt+ x,我移动到下一个文件/文件夹(我想这就像移动到下一行).

注意我在Mac上,所以?实际上是Alt+ 的输出x(它是用其他映射测试的).

我应该重新映射什么?

tim*_*mss 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
Run Code Online (Sandbox Code Playgroud)

既然你是正确的命令,就没有必要将其他东西重新绑定到<Enter><CR>.
一般你会使用<A-x>,但如果?适合你,那我觉得很好:

:nnoremap ? :call nerdtree#invokeKeyMap("o")<CR>
Run Code Online (Sandbox Code Playgroud)

底线:
我想指出,我不明白你为什么要使用这样的映射.你可以使用o,你应该/应该在这个范围内(同样可以说Enter).