VIM進階學習之幾種模式和按鍵映射

來源:互聯網
上載者:User

標籤:des   style   http   color   使用   ar   檔案   div   sp   

Map是Vim強大的一個重要原因,可以自訂各種快速鍵,用起來自然得心應手。
vim裡最基本的map用法也就是

:map c a

這裡把c映射成了a,在map生效的情況下,按下c就等同於按下了a
當然,常用的Ctrl,Shift,Alt自然也是支援的。

    • 令Ctrl+a對應到a
:map <C-a> a
    • 令Alt+a對應到a
:map <A-a> a
    • 令Ctrl+Alt+a對應到a
:map <C-A-a> a

到此,我們已經可以做很多事情了。
但是map命令遠不只這一種,在不同的模式下,同一組按鍵可以被映射到不同的組合上。
Vim的模式眾多,但是一般被提及的也就是這麼幾種:

    1. Normal Mode

也就是最一般的普通模式,預設進入vim之後,處於這種模式。

    1. Visual Mode

一般譯作可視模式,在這種模式下選定一些字元、行、多列。
在普通模式下,可以按v進入。

    1. Insert Mode

插入模式,其實就是指處在編輯輸入的狀態。普通模式下,可以按i進入。

    1. Select Mode

在gvim下常用的模式,可以叫作選擇模式吧。用滑鼠拖選地區的時候,就進入了選擇模式。
和可視模式不同的是,在這個模式下,選擇完了高亮地區後,敲任何按鍵就直接輸入並替換選擇的文本了。
和windows下的編輯器選定編輯的效果一致。普通模式下,可以按gh進入。

    1. Command-Line/Ex Mode

就叫命令列模式和Ex模式吧。兩者略有不同,普通模式下按冒號(:)進入Command-Line模式,可以輸入各種命令,
使用vim的各種強大功能。普通模式下按Q進入Ex模式,其實就是多行的Command-Line模式。

對於Map,有幾個基本的概念

    • 命令的組合

同Vim下的其他命令一樣,命令的名字往往由好幾段組成。首碼作為命令本身的修飾符,微調命令的效果。
對於map而言,可能有這麼幾種首碼

      1. nore

表示非遞迴,見下面的介紹

      1. n

表示在普通模式下生效

      1. v

表示在可視模式下生效

      1. i

表示在插入模式下生效

      1. c

表示在命令列模式下生效

    • Recursive Mapping

遞迴的映射。其實很好理解,也就是如果鍵a被映射成了b,c又被映射成了a,如果映射是遞迴的,那麼c就被映射成了b。

:map a b:map c a

對於c效果等同於

:map c b

預設的map就是遞迴的。如果遇到[nore]這種首碼,比如:noremap,就表示這種map是非遞迴的。

    • unmap

unmap後面跟著一個按鍵組合,表示刪除這個映射。

:unmap c

那麼在map生效模式下,c不再被映射到a上。

同樣,unmap可以加各種首碼,表示影響到的模式。

    • mapclear

mapclear直接清除相關模式下的所有映射。
同樣,mapclear可以加各種首碼,表示影響到的模式。

這裡列出常用的一些map命令,預設map命令影響到普通模式和可視模式。

:map :noremap :unmap :mapclear
:nmap :nnoremap :nunmap :nmapclear
:vmap :vnoremap :vunmap :vmapclear
:imap :inoremap :iunmap :imapclear
:cmap :cnoremap :cunmap :cmapclear

可以試試這些命令

  1. 命令列模式下建一個mapping
     nmap b a 
  2. 現在普通模式下,按b,可以進入插入模式,隨便輸入一些字元
  3. 命令列模式下建一個mapping
     vmap b d 
  4. 現在普通模式下,按V,進入了可視模式,並且選定了一整行,按下b,可以刪除整行
  5. 命令列模式下建一個mapping
     imap b a 
  6. 現在試著給正在編輯的這個檔案輸入一個字元”b”吧 :p
  7. 命令列模式下建一個mapping
     cmap b c 
  8. 命令列模式下, 按下b,會出來一個a

好了,到此vim的按鍵已經被你弄得亂七八糟了,試著用unmap和mapclear清除這些mapping吧。:]

 

轉自:http://haoxiang.org/2011/09/vim-modes-and-mappin/

VIM進階學習之幾種模式和按鍵映射

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.