Linux下vim配置詳解

這兩天使用Linux下的Vim,總是不得勁,網上找的Vim配置文件,總是有這樣那樣的不滿意,遂查看了下具體命令的意義,整理如下:

1.大括號匹配問題

原理:是通過映射操作實現,簡單的說,就是摁下{,vim執行一系列的操作。而要達到我們滿意的效果,需要設置一些對應的操作的標準,也就是對齊配置。那麼首先,設置對齊如下

(1)對齊相關配置:

set smartindent
set tabstop=4
set shiftwidth=4
set expandtab
具體意義解釋:
 set smartindent: 在行和段開始處使用製表符

 set tabstop=4: 設置tab爲4個字符,而不是8個。

set shiftwidth=4:設置自動縮進爲4個字符。

set expandtab 設置不使用空格代替製表符


對齊結束,下面進行括號補全的設置,以大括號和小括號爲例。

(2)自動補全小括號:

imap ( ()<ESC>i

imap是配置文件用的一個函數,表示映射。這句話的意思是,映射“(”操作爲“()<ESC>i”。

也就是說,當你摁下鍵盤上的“(”時,vim實際執行的是一系列操作:

<1>摁下“(”,摁下“)”。

<2>摁下ESC鍵

<3>摁下i鍵

上面<2><3>操作是爲了將光標移前一格,自己試一下就知道了。


(3) 自動補全大括號:

有了上面的認識,大括號就比較好理解,具體代碼如下:

imap { {}<ESC>i<CR><ESC>V<O

<ESC>後面跟的V < O 各代表什麼意義呢?這是在vim命令模式下的一些快捷鍵命令。

V:按鍵shift+v,實現操作:選中當前行。這裏當執行這一操作的時候,實際上選中的是“}”所在的行。

<: 按鍵shift+<,實現操作:將當前行向左移動一個tab,此時右括號已經和左括號對齊。

O:按鍵shift+o,實現操作:在當前行的前一行插入文本,實際執行效果就恰好滿足我們的需求。


使用上面的方式進行配置大括號時,實際發現一般縮進正常,但是在已有縮進的行進行縮進時,比如嵌套if語句等,還是有問題,遂修改如下:

imap { {<CR>}<ESC>i<ESC>O


綜上,其實vim的配置文件並不複雜,關鍵是要去理解。

文中用到的一些用<>括起來的符號作爲鍵盤操作,具體可以通過下面的Vim命令來查看:

:help keycodes

在Vim的命令模式下,鍵入help keycodes如下:



這樣,對於上面的<CR>、<ESC>等,就十分清楚了。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章