版本 36c766bdad1a26add292eb9001d4ad2f1dcd3e94
vimrc設定教學
vim是強大的IDE,很多初學者碰到vim會很不習慣,像是用hjkl鍵來移動光標,不小心按到方向鍵讓編輯一整個崩潰的悲慘經驗,使得初學者不喜歡碰vim(被視窗化介面給寵壞了)。vim強大的地方在於使用者可以自由的設定和擴充功能,讓vim為自己工作,進而擁有良好得編輯體驗。良好的vim設定,使得在coding過程中不用去煩惱編輯器的問題,增強coding效率。
前置作業
- 安裝vim
剛安裝好的linux上只有vi,vi預設不支援方向鍵移動光標,還有自動上色等功能。但是vim比vi強大很多很多,除了以上功能不用另外設定外,還支援多步復原/取消復原、同時編輯多個檔案等。$ sudo apt-get install vim
# linux的安裝指令(常用)
- 建立vim設定檔.vimrc
$ cd
# 移動到使用者的家目錄$ vi .vimrc
# 建立新的vim設定檔
必備設定
:set nu
- 顯示行號:對於debug相當有幫助!
:set ai
- 自動對齊縮排 縮排即為一個tab字元(‘\t’)。也就是說,如果上一行有兩個tab的寬度,按enter繼續編輯下一行時會自動保留兩個tab鍵的寬度。
:set cursorline
- 光標底線:光標所在的那一行會有底線,幫助尋找光標位置
:set bg=light
- 上色模式-針對亮背景上色
- 預設為亮背景(白色等)上色,但是終端機的初始背景色為深紫色,會出現文字失蹤(註解為深藍色)的情況。將這一行換成
:set bg=dark
即可。
:set tabstop=4
- 縮排間隔數:預設為8格對齊
- 也就是說按一次tab鍵,游標會跳到第8*n+1格。雖有多個空格但實際上只有一個tab字元。
.. [Not sure]- :set shiftwidth=4
自動縮排間隔數:?
:set mouse=a
- 啟用游標選取:游標可以直接選取文字,滾輪可以直接滑動頁面(非移動光標)。
:set mouse=""
- 停用游標選取:游標無法選取文字,滾輪只會移動光標的位置。
- 所有設定都可以在vim的command-mode中作即時變更,像是如果要關閉自動縮排對齊功能時,先按
Esc
離開insert-mode,輸入:set noai
就可以了。
Key Mapping
如果有使用過其他IDE,就會發現有個好用的功能,括號自動對齊,例如:只輸入左括號,IDE自動幫你完成右括號。可以使用key mapping來完成。
:inoremap ( ()<Esc>i
- 在insert-mode下,只要輸入’(’,vim會先執行輸入
()
→<Esc>
進入Command-mode→i
進入Insert-mode→就會發現光標在“(”“)”之間了 - 其他類似應用還有:
:inoremap " ""<Esc>i
:inoremap ' ''<Esc>i
:inoremap [ []<Esc>i
- 在insert-mode下,只要輸入’(’,vim會先執行輸入
:inoremap { {<CR>}<Esc>ko<Tab>
- 在coding的過程中{}的使用量也很大,所以這個key mapping對於coding相當有幫助!
- 在insert-mode時,當輸入’{’,vim會輸入
{
→<CR>
換行→輸入}
→進入command-mode→k
光標上移→o
插入新的一行→Tab
增加縮排