2012-01-29 35 views
16

我在iterm2下使用vim。我使用的是NERDCommenter插件,我想使用Ctrl + /切换注释(尝试从Idea/Eclipse切换到vim)。这是我在.vimrc中的映射:如何映射<C-/>在vim中切换注释?

nmap <C-/> <leader>c<Space> 
vmap <C-/> <leader>c<Space> 

但它似乎不工作。可能是什么原因?

回答

23

由于某些原因,vim将<C-/>注册为<C-_>(您可以使用<C-v><C-/>在插入模式下看到它)。它可以是终端应用程序必须承受的终端或历史设计事物。

而Gvim甚至不会尝试识别<C-/>。将其视为单个/

+2

谢谢!我只是将它映射到,它的工作原理!最初的想法是映射到,但它甚至没有在vim中注册,我认为... – 2012-01-29 14:05:40

+0

这是只在iterm2上吗?我正在使用Terminal.app,只是听到铃声错误而没有任何反应。但是,当我实际按下''绑定中的'_'键时,它将执行注释切换。我怎样才能让Terminal.app使用''绑定? – 2016-08-13 09:28:24

+0

关于上述注意事项^^''只适用于数字小键盘(10键)上的下划线,不适用于苹果紧凑型键盘。此外,''不是有效的键码(显然“CTRL +字母”有限,'/'不是其中之一)。资料来源:http://vim.1045645.n5.nabble.com/How-to-map-Ctrl-td1192843.html – 2016-08-17 07:32:37

0

只是总结其他答案的信息。对我来说(可能有差异,由于这样的事实,我使用neovim)在Windows <C-/>工作正常,但我需要使用Linux上<C-_>:如果您使用iTerm2 + VIM

if has('win32') 
    nmap <C-/> <leader>c<Space> 
    vmap <C-/> <leader>c<Space> 
else 
    nmap <C-_> <leader>c<Space> 
    vmap <C-_> <leader>c<Space> 
endif 
0

,也许以下步骤可以帮助您:

  1. 将以下代码添加到您的.vimrc文件中。

    地图,CC <插头> NERDCommenterToggle

    ,或者如果您已经定义了<领袖>为,

    地图<领袖> CC <插头> NERDCommenterToggle

  2. 检查您是否可以使用,cc切换意见在vim

  3. 打开iTerm2 -> Preferences -> Keys,点击+按钮

  4. 选择Send Text with "vim" Special Chars,进入,cclike this

  5. 现在您可以使用C-/在vim中切换注释。

0

这里是你如何能做到这重新获得的选择,如果你是在可视化模式:

nmap <C-_> <Plug>NERDCommenterToggle 
vmap <C-_> <Plug>NERDCommenterToggle<CR>gv