我的 Vim 設定 (2)

2020-07-09

最近讀了 Modern Vim,又學了一些方便的設定,所以來把我的 Vim 設定更新一下

之前的文章在這裡 ( 我的 Vim 設定 )。舊的方法還是可以用,不過新的更好


第一步 安裝

我裝了這些:

  1. Vim
  2. Exuberant Ctags
  3. ripgrep (rg)

vim

要安裝 8.0 以上的版本,我現在用的是 Cygwin 的 Vim

ctags

Practical Vim Chapter 16 介紹的 Index and Navigate 工具,
我現在用的是 Cygwin 的 ctags

使用方法:

在 Project 的最上層目錄執行

$ ctags -R

就會產生索引用的 tags 檔。
<C-]> 跳到游標下 keyword 的定義, <C-t> 跳回查詢之前的位置

rg

快速搜尋文件內容的工具,可以跟後面介紹的 plugin “vim-grepper” 配合使用


第二步 Plugins

目前使用這些:

  1. k-takata/minpac
  2. junegunn/fzf
  3. yegappan/taglist
  4. mhinz/vim-grepper
  5. samoshkin/vim-mergetool
  6. NLKNguyen/papercolor-theme
  7. itchyny/lightline.vim
  8. justinmk/vim-syntax-extra
  9. hdima/python-syntax
  10. nelstrom/vim-visual-star-search
  11. tpope/vim-abolish
  12. tpope/vim-fugitive
  13. tpope/vim-surround
  14. tpope/vim-unimpaired

minpac

這是一個 vim plugin 的 package manager。
設定好 vimrc,後續的安裝和更新只要在 Vim 裡輸入一個指令:

:PackUpdate

安裝 minpac 的方法:

$ mkdir -p ~/.vim/pack/minpac/opt
$ cd ~/.vim/pack/minpac/opt
$ git clone https://github.com/k-takata/minpac.git

fzf

用來搜尋檔名,不用打完整檔名的 fuzzy 搜尋。安裝方法:

$ ~/.vim/pack/minpac/start/fzf/install --bin

但是,我現在用在 Cygwin 有個 bug。解決方法很簡單,在 fzf.vim 第 587 行後面加上:

&& ($TERM !=# 'xterm')

taglist

可以用來看程式碼的架構,方便找 function

vim-grepper

這是搜尋用的工具:非同步執行,所以他不會讓你的編輯器卡住。
還會幫你把搜尋結果放到 Quickfix list
搭配前面安裝的 rg,只要執行:

:Grepper

就能超快速的搜尋整個專案

vim-mergetool

用 Vim 處理 conflict 的工具

NLKNguyen/papercolor-theme

這是一個 Vim 的 color schemes,我覺得滿好看的

itchyny/lightline.vim

這是一個 Vim statusline/tabline 的 color schemes
他裡面有 PaperColor 的樣式可以選擇

vim-syntax-extra

C 語言的 syntax hightlighting extra

python-syntax

Python 的 syntax hightlighting extra

Practical Vim 的作者 Drew Neil 寫的一些方便的設定。
譬如在 visual mode 也可以用 * 和 # 來搜尋

Tim Pope

Tim Pope 大師寫的 plugins,太多了,每個都很實用。
還在慢慢探索中,有興趣的人可以到 Github 上看他的作品


以上就是整理我最近學到的一些 Vim 的設定
Drew Neil 寫的兩本 Vim 的書整理的非常好,淺顯易懂,全部看完之後功力大增
非常推薦大家閱讀 Drew Neil 的 Practical VimModern Vim