3

我正在使用一个名为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在本机vim(Ubuntu)上安装会让您进入我的设置。
4

2 回答 2

5
  1. 如果要将键映射到另一个映射,则需要使用:map,而不是:noremap
  2. 对于大多数插件来说,这不是必需的;它们通常提供配置变量或<Plug>PluginName...为此提供。阅读:help g:tcommentMaps此特定插件的说明,然后将您的覆盖放入您的~/.vimrc.
于 2013-11-08T09:42:14.527 回答
2

如果我对您的理解正确,您希望有一张地图(在 i、n 和 v 模式下)可以评论当前行或视觉选择。这就是 tcomment 的<c-_><c-_>地图现在所做的(除了您要保持视觉选择)。为了使用<c-/>,您必须在 vimrc 中设置 g:tcommentMapLeader1 = '' (或其他一些地图,因为<c-/>似乎与<c-_>echristopherson 指出的相同),然后为<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-_>才能完成这项工作。由于您报告 tcomment 在键入时已经工作<c-/><c-/>,因此<c-_>地图应该可以工作。

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

于 2013-11-11T07:13:34.747 回答