先複習一下昨天客製化的結果:

看起來已經有模有樣了呢!但距離我們終極的目標 —— 將 vim 打造成 IDE 還有很長一段路要走呢~
今天就著重於外觀,將我們的 IDE 的稍微改造一下吧~
Plug 'arcticicestudio/nord-vim'
不論是在 Vistual Studio Code 或是在 vim 我都最喜歡 Nord 這款外觀!

安裝完後只需要在 vim 設定檔指定安裝好的主題就可以了~ (當然你也可以選用不同的主題)
let g:airline_theme='nord'

Plug 'vim-airline/vim-airline'
一般的 IDE 底部都會有個狀態列,包含當前的行數、字數,語言甚至是 git 的分支,都會在狀態列下顯示。
當然也有人為 vim 做了個強大的狀態列顯示插件,他稱為 airline!
它支援了不僅檔案種類、行數、字數等這些基本的資訊,還整合了包含 nerdtree、vim-gitgutter 這些許多人使用的套件,讓狀態列的顯示更為完整。
為了符合我們的主題 powerlevel9k,我們開啟 powerline fonts 的設定吧。
let g:airline_powerline_fonts=1
我們也在上方加入標籤,這樣未來就方便切換檔案進行編輯啦~
let g:airline#extensions#tabline#enabled=1
加入了這個設定後,我們就可以在 vim 視窗的上方看到標籤列了!
不過標籤列最右方的
buffers是什麼意思呢?編輯器在開啟檔案的時候,通常都會將檔案複製一份到暫存器 (buffer),再由暫存器進行讀寫,存檔時再將暫存器所代表的檔案覆蓋過去哦!所以當
IDE幫你開啟檔案時,並不是直接對檔案進行操作。
你可以做個小實驗,用兩個簡單的文字編輯器開啟同一個檔案,當 A 編輯器更改後存檔時,B 編輯器的檔案並不會更新,因為兩個編輯器所使用的暫存檔不同。
當然有些軟體會自動偵測檔案的變更,不過執行的策略可能就分成:
- 將檔案更新,遺失原先在這個軟體編輯的內容。
- 提醒使用者檔案已變更,是否要將目前的內容儲存。
在 vim 當中的暫存檔案都是以 .swp (swap file) 作為暫存檔案,vim 8 是儲存在相同的位置底下,到了 NeoVim 則是統一放在 ~/.local/share/nvim/swap 資料夾底下。
因為我比較笨拙,怕忘了在 .gitignore 中加入 .swp,不小心也將暫存檔加進 commit ,所以這點我比較喜歡 NeoVim 的配置~
雖然開啟了標籤的設定,可是要怎麼切換標籤啊?
先給大家看看切換的指令唄。
| 指令 | 功能 |
|---|---|
:bnext |
後一個暫存 |
:bprevious |
前一個暫存 |
:bfirst |
第一個暫存 |
:blast |
最後一個暫存 |
:b1 |
第 1 個暫存 |
:1bn |
跳下 1 個暫存 |
:b <buffer-name> |
切換到指定的暫存 |
:bd |
關閉當前的暫存 |
當然輸入指令切換也不是很費功夫,只是我真的很懶所以也寫好了快捷鍵 orz...
nnoremap <Leader>[ :bprevious<CR>
nnoremap <Leader>] :bnext<CR>
nnoremap <Leader>1 :bfirst<CR>
nnoremap <Leader>2 :bfirst<CR>:bn<CR>
nnoremap <Leader>3 :bfirst<CR>:2bn<CR>
nnoremap <Leader>4 :bfirst<CR>:3bn<CR>
nnoremap <Leader>5 :bfirst<CR>:4bn<CR>
nnoremap <Leader>6 :bfirst<CR>:5bn<CR>
nnoremap <Leader>7 :bfirst<CR>:6bn<CR>
nnoremap <Leader>8 :bfirst<CR>:7bn<CR>
nnoremap <Leader>9 :blast<CR>
nnoremap <Leader>w :bd<CR>
大概就是
\ + [ 去前一個暫存\ + ] 去後一個暫存\ + 數字鍵 (1 ~ 8) 去特定的暫存\ + 9 去最後一個暫存\ + w 關閉當前暫存因為 nerdtree 也包含在 buffers 裡面,根據開啟的順序會影響到切換的結果,所以數字鍵切換是先到第一個再去指定的暫存。

可是顏色和風格怎麼和我們的主題格格不入?
Plug 'vim-airline/vim-airline-theme'
那有什麼問題,我們馬上藉由 airline-theme 這個套件來更改外觀!這是一個包含了各式各樣 airline 主題的套件,所有的主題會放在套件資料夾底下的 vim-airline-theme/autoload/airline/themes/ 裡面,當中就有 base16_nord.vim 這個主題啦!
馬上來套用看看。
let g:airline_theme='nord'

當然也可以試著切換看看其他的主題~這邊給大家看看官方所有主題的截圖
乍看之下還以為這是 VS Code 呢!之後就繼續介紹其他的套件吧~