辛星深入分析vim的自動補全功能以及vim的映射

來源:互聯網
上載者:User

標籤:辛星   vim   映射   自動補全   技巧   

     以前對於vim的自動補全功能,都是需要的時候從網上下載點配置項,然後拷貝到自己的vimrc上去,自己也不知道是什麼意思,結果發現搜尋到的很多自動補全的方式都很另類,有的喜歡在補全大括弧的時候自動換行,還有的喜歡在補全大括弧的時候自動縮排一下,那麼,我們花幾分鐘時間瞭解一下,自己寫出來這些配置,何樂而不為呢?

********************************按鍵映射******************************

1.首先分清一個概念,那就是nnoremap和inoremap,第一個是在普通模式下生效的映射,第二個是在插入模式下生效的映射,咱們一般都需要在插入模式下使用的,因此咱們通常使用inoremap,那麼提到了映射,什麼是映射呢?

2.所謂映射,就是當我們按下某個鍵的時候,它會執行另一部分內容,比如說咱們使用map T:q!,那麼當我們在命令模式下按T並且斷行符號,就會退出vim,除了map之外,還有nmap表示在normal模式下生效,imap在insert模式下生效,vmap在visual模式下生效,map在所有模式下生效。

3.那麼設定一個映射使用:map <要映射的鍵> <被映射的按鍵序列>,如果我們要解除映射,使用unmap命令,清除所有映射使用mapclear命令。

4.咱們通常把這些映射寫入設定檔vimrc中去,這樣一次寫入,永久生效。

**************************鍵位說明**********************************

1.任何可以直接顯示的字元都可以直接輸入,但是有兩個例外,即反斜線和<,因為我們用反斜線表示轉義,而<有特殊作用。

2.反斜線用兩個反斜線表示,或者使用<Bslash>

3.而<需要用\<或者<lt>來表示。

4.<key>的意思是特殊鍵,咱們介紹一些常用的特殊鍵:

<Esc>  表示Escape鍵,

<C-G>表示Ctrl-G鍵

<Up>表示游標上移

<C-LeftMOuse>表示Ctrl並且滑鼠左鍵點擊

<Space>表示空格

<Tab>表示Table鍵

<CR>就是斷行符號鍵

**********************開始寫我們自己的自動補全***********************

1.首先給出我的自動補全的格式把,首先值得說明的是,這段代碼是寫在_vimrc裡面的,下面為大家仔細分析一下:

"自動補全:inoremap ( ()<ESC>i:inoremap ) <c-r>=ClosePair(')')<CR>:inoremap { {<CR><CR>}<ESC>0ki<Tab>:inoremap } <c-r>=ClosePair('}')<CR>function ClosePair(char) if getline('.')[col('.') - 1] == a:charreturn "\<Right>"else return a:char endif endf
2.這裡的:inoremap表示是在插入模式下的映射,首先第二行的( 即先寫(),然後使用esc回到命令模式下,然後執行i來進入到插入模式下。

3.而當我輸入{ 的時候,看它的命令,首先輸入一個{,然後是<CR>表示斷行符號換行,然後又是一個換行,然後輸入},然後使用esc回到命令模式下,然後我們利用0命令回到行首,然後咱們使用k命令把滑鼠移動到上一行,然後執行i命令進入到插入模式,然後咱們使用<Tab>表示插入一個定位字元。

4.當然我只定義了小括弧和大括弧的自動補全,對於中括弧我並沒有使用自動補全,大家可以自行去修改。

5.vim在這點上使用還是蠻舒服的,畢竟感覺很自由。

6.傳播編程知識,振興中華軟體,辛星,期待您的關注。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.