簡體   English   中英

在vim鍵映射中使用變量

[英]Using variable in vim key mappings

在vim中映射鍵時如何使用變量? 我想解決的具體問題如下。 我需要這些鍵映射:

nnoremap <C-1> 1gt
nnoremap <C-2> 2gt
nnoremap <C-3> 3gt

... and so on.

我可以指定一個映射; 就像是

nnoremap <C-x> xgt

其中x取壓鍵的值(可以是1..9)

謝謝。

編輯1:由於Peter Rincker,解決方案(尚未完成)

我可以使用這個功能

function gotoTab(num)
   execute "normal" a:num."gt"
endfunction

如果我:call goToTab(3) ,它將轉到選項卡3。

如何將Command-x(Dx)映射到goToTab(x),其中x介於1..9之間。 如何從Command-x印刷機讀取數字?

我得到了壞消息。 你不能映射<c-1>等。你只能綁定我不會做的<c-6> ,因為它非常方便。

您似乎正在進行以標簽為中心的工作流程。 我知道這可能聽起來很奇怪,但可能會使用較少的選項卡窗格和更多緩沖區。 這里有一些關於它的好帖子:

...好吧,但我真的想做這個變量映射的事情。 你有選擇:

  • 使用for循環並使用:execute來創建映射
  • 更多Vim Way是使用計數7gt 7是計數。

使用示例:for:execute

for i in range(1, 9)
  execute "nnoremap \<d-" . i . "> " . i . "gt"
endfor

注意:這使用Command的<d-...>語法,該語法僅在MacVim上可用且沒有終端支持(參見:h <D- )。 您可以使用<a-...> Alt。 但是我必須警告你在終端上使用Alt可能會很棘手。

有關更多幫助請參閱:

:h keycodes
:h map-which-keys
:h :for
:h :exe
:h count
:h v:count
:h range(

暫無
暫無

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

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