VIM:麻烦映射<c->并重新选择视觉选择?</c->

时间:2013-11-08 09:29:35

标签: comments vim vim-plugin

我正在使用名为tComment

vim插件

它允许我按gc<c-_><c-_>

对一行进行评论

此外,它适用于快捷方式<c-/><c-/>,但visual selection已丢失。

所以,我试过了:

  • 使其适用于单<c-/>
  • 保留视觉选择。

我的尝试:

inoremap <c-/> gc
vnoremap <c-/> gc gv
nnoremap <c-/> gc

======

imap <c-/> gc
vmap <c-/> gc gv
nmap <c-/> gc

======

imap <c-/> gc$
vmap <c-/> gc$ gv
nmap <c-/> gc$

======

inoremap <c-/> <c-_><c-_>
vnoremap <c-/> <c-_><c-_> gv
nnoremap <c-/> <c-_><c-_>

======

imap <c-/> <c-_><c-_>
vmap <c-/> <c-_><c-_> gv
nmap <c-/> <c-_><c-_>

以上情况似乎无效

注意:

  1. 我没有做过任何其他自定义。
  2. 我的尝试列在上面
  3. 在原生tComment(Ubuntu)上安装vim会让您进入我的设置。

2 个答案:

答案 0 :(得分:5)

  1. 如果您想将密钥映射到另一个映射,则需要使用:map,而不是:noremap
  2. 对于大多数插件,这不是必需的;它们通常提供配置变量或<Plug>PluginName...。请阅读:help g:tcommentMaps以获取有关此特定插件的说明,然后将替换放入~/.vimrc

答案 1 :(得分:2)

如果我理解正确,您希望有一个地图(在i,n和&amp; v模式下),可以对当前行或视觉选择进行注释。这就是tcomment的<c-_><c-_>地图现在所做的事情(除了你想要保持视觉选择)。为了使用<c-/>,您必须在vimrc中设置g:tcommentMapLeader1 =''(或其他一些地图,因为<c-/>似乎与echristopherson指出的<c-_>相同)然后定义<c-/>的地图。

这应该有效(将这些行添加到.vimrc):

let g:tcommentMapLeader1 = ''
noremap <silent> <c-/> :TComment<cr>
vnoremap <silent> <c-/> :TCommentMaybeInline<cr>gv
inoremap <silent> <c-/> <c-o>:TComment<cr>

您可能需要将<c-/>替换为<c-_>才能使其正常运行。由于您在键入<c-/><c-/>时报告说tcomment已经有效,因此<c-_>地图应该有效。

无论如何,我还建议使用运算符映射,因为这些更适合vim的工作方式。我不认为使用单个键仍然是一个好主意。