首頁  >  文章  >  運維  >  讓Vim更好的工作—VIM映射

讓Vim更好的工作—VIM映射

齐天大圣
齐天大圣原創
2020-06-12 10:38:352256瀏覽

映射是我最喜歡的vim功能了,透過它可以自由的設定自己的快捷鍵,可以大大提高我的編寫效率。映射可以理解為設定快捷鍵,就是讓你用少量的,方便按的鍵來取代比較多、繁的鍵。

什麼時候用映射

如果你有以下一個或多個困擾,那麼就可以來使用映射了哦

  • #不滿足現在的按鍵

  • 想設定一些快捷鍵來提高編輯速度

  • 想組合一些按鍵來完成新的需求

映射的分類

我們知道,vim有多種模式,與其對應的,映射也有nmap(普通映射)、imap(插入映射)、vmap(塊選擇映射)。

我們分別來選幾個案例來講講這三種映射。

普通對映

" 使用F1切换显示行号
nmap <F1> :set nu! nu?<cr>

這裡的CR表示回車鍵的意思。

插入映射

" 使用jj来代替esc键,完成从插入模式退回到普通模式
imap jj <esc>`^

一般我們都會使用jj來取代esc鍵,來完成快速從插入模式切換到普通模式。

" 在插入模式下向前向后删除字符
imap <C-b> <Backspace>
imap <C-d> <Esc>lxi

這裡c表示ctrl鍵,在插入模式下,使用ctrl b表示向後刪除一個字符,而使用ctrl d表示向前刪除一個字符。

區塊模式對應

一般的,我們常常會對多行文字來進行增加縮進,或是減少縮排。之前一篇文章說過,可以透過區塊選擇結合命令列、或透過巨集來實現該需求。今天,學了映射後,可以使用更簡單的方法來實現需求。

vmap < <gv 
vmap > >gv

現在,如果我們想對多行進行縮進,只需選擇好這些行,然後按下>或<即可實現。

遞迴映射

如果你下一下的映射時,會發生什麼

nmap dd O<esc>jddk

如果當你執行了dd後,會發生嚴重的問題的。因為映射兩邊都有dd,所以會導致無限循環。這種無限循環是由於遞歸造成了,所以叫做遞歸映射。

大家可以看到,遞迴映射是有危害的,所以,工作中一律不准使用遞迴映射,而是要採用非遞迴映射。那如果進行非遞歸映射呢?也很簡單,加4個字母即可nore

  • nmap 遞迴   nnoremap 非遞迴

  • imap 遞迴 inoremap非遞迴

  • vmap 遞迴vnoremap 非遞迴

以上是讓Vim更好的工作—VIM映射的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn