簡體   English   中英

VIM:麻煩映射<c - />並重新選擇視覺選擇?

[英]VIM : Trouble mapping <c-/> and re-selecting visual selection?

我正在使用一個名為tCommentvim插件

它允許我通過按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. 在native vim (Ubuntu)上安裝tComment你進入我的設置。
  1. 如果要將鍵映射到另一個映射,則需要使用:map ,而不是:noremap
  2. 對於大多數插件,這不是必需的; 它們通常提供配置變量或<Plug>PluginName... 閱讀:help g:tcommentMaps獲取有關此特定插件的說明,然后將覆蓋放入~/.vimrc

如果我理解正確,您希望有一個地圖(在i,n和&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的工作方式。 我不認為使用單個鍵仍然是一個好主意。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM