題 在Vi中,如何將“:t”映射為“:tabnew”?


我不想總是輸入這個詞。它很煩人。


5
2018-01-08 23:09


起源


+1這樣的措辭和懶惰激發了我的許多個人vim快捷方式 - EricR


答案:


一種方法是 用戶定義的命令。不幸的是,那些不能以小寫字母開頭,所以你的下一個最佳選擇是 :T

:commmand -nargs=* T tabnew <args>

3
2018-01-16 07:30





如果您不喜歡tab命令的現有快捷方式,則可以添加自己的快捷方式。例如,如果您想輕鬆打開新選項卡,可以將其插入到.vimrc中:

imap ,t <Esc>:tabnew<CR>

這告訴Vim在插入模式下為t設置鍵盤映射,以運行Esc以使Vim進入正常模式,然後:tabnew並返回一個回車來運行命令。

https://www.linux.com/learn/tutorials/442422-vim-tips-using-tabs
也可以看看 http://dissociatedpress.net/vim-resources/vim-tips-using-vim-mappings-and-abbreviations/

使用 cmap 用於命令模式映射。


2
2018-01-08 23:35



執行“:cmap t tabnew <CR>”會產生相當嚴重的意外後果 - 每次嘗試在: - 命令行中輸入“t”時都會觸發。 - Heptite
@Heptite:是的,這不會很好。我將編輯答案以刪除該示例。 - RedGrittyBrick


儘管有其他建議,但這裡有一個更準確的答案: 我不認為它可能完全等價,但這組映射會讓你非常接近:

:nnoremap :t<CR>    :tabnew<CR>
:xnoremap :t<CR>    :tabnew<CR>

:nnoremap :t<Space> :tabnew<Space>
:xnoremap :t<Space> :tabnew<Space>

或者相當於,但是 更好

" :map in Normal and Visual modes, but not Select mode (see :help mapmode-x
:command -nargs=*  Nxmap      nmap     <args>| xmap     <args>
     com -nargs=*  Nxnoremap  nnoremap <args>| xnoremap <args>
     com -nargs=*  Nxunmap    nunmap   <args>| xunmap   <args>

:Nxnoremap :t<CR>    :tabnew<CR>
:Nxnoremap :t<Space> :tabnew<Space>

1
2018-01-16 07:11





選擇你在vim下不使用的密鑰,比如說 ,並將該鍵重新映射到tabnew命令:

:map ) :tabnew^M

要輸入最後一個CR(^ M),請鍵入 控制V 然後 輸入


0
2018-01-09 00:07



或恕我直言更可讀 <CR> 而不是 ^M - Aaron Thoma
@acco:我更喜歡^ V ^ M,因為它更便攜,但在特定情況下,這是關於vim功能,<CR>確實更簡單。 - jlliagre
@jiliagre:有趣的是,你能詳細說明這種便攜性嗎? - Aaron Thoma
@acco:<CR>是特定於vim的,因此在原始vi命令和elvis等其他克隆中不受支持。 ^ V ^ M適用於所有這些。 - jlliagre
@jiliagre:哦,我明白了,謝謝! - Aaron Thoma


內置較短的別名 :tabnew 是 :tabe,這是短的 :tabedit,這只是同義詞 :tabnew


0
2018-01-16 07:12