三十分鐘配置一個順滑如水的 Vim

三十分鐘配置一個順滑如水的 Vim

先上療效,給大家看效果:

不知道 CSDN 抽了什麼封,這張外鏈的 gif 動圖硬是加載不上來,大家直接點擊這個鏈接看效果吧: Vim Fly

安裝 Vim

首先說明,vi 和 vim 是兩個不同的版本,vi 是 vim 的精簡版本,功能要弱很多,所以如果你的系統裏面只有 vi,請執行 apt install vim 命令更新到 vim,而且最好更新到 8.0 版本。

如果你係統裏面沒有安裝 vim,你打開 vi,看到的應該是下面這樣的。

安裝 vim 後,你打開 vim,看到的界面是這樣的。

注意區分。

安裝 Universal-ctags

ctags 的作用是掃描工程中的代碼,爲代碼中定義的函數、變量生成一份 tags 數據庫文件,然後我們用 vim 瀏覽代碼的的時候,當光標移動到某個函數或者變量上,只要按下 Ctrl + ] 組合按鍵,就會自動跳轉到這個函數或者變量定義地方。

ctag 目前有兩個版本: Exuberant-ctags 和 Universal-ctags,Exuberant-ctags 比較老,目前已經停止維護, Universal-ctags 則是新版本,一直在更新,功能更強大,支持的語言也更多,所以這裏安裝新版本。

git clone https://github.com/universal-ctags/ctags.git
cd ctags
git checkout 61cc66cf
sudo apt install gcc make pkg-config autoconf automake python3-docutils \
   libseccomp-dev libjansson-dev libyaml-dev libxml2-dev
./autogen.sh
./configure 
make
sudo make install

目前只能通過編譯源碼的方式安裝,而且我發現最新的代碼有問題,所以回退到了一個可用的版本。

安裝 ripgrep

ripgrep 是一個超級強大的命令行搜索工具,看名字就知道,它是來挑戰 grep 的,它確實比 grep 好用,強大、簡單,目前在 github 上超過了一萬六千個 star,可見其受歡迎程度。我現在基本用它來代替了 grep 命令。vim 裏面也可以用它來結合 LeaderF 插鍵搜索函數和變量。

這個軟件目前只能通過下載軟件包安裝,如果你的系統版本比較新,比如 Ubuntu 18.10 或者 Debian 10,倒是可以直接通過 apt install 命令安裝。

curl -LO https://github.com/BurntSushi/ripgrep/releases/download/11.0.2/ripgrep_11.0.2_amd64.deb
sudo dpkg -i ripgrep_11.0.2_amd64.deb

第一條命令是下載 ripgrep_11.0.2_amd64.deb 這個安裝包,第二條命令是安裝。

安裝 vim-pulg

vim-pulg 是一個韓國人寫的 vim 插件管理器,目前在 github 上也超過了一萬六千個 star,下載安裝命令如下:

curl -fLo ~/.vim/autoload/plug.vim --create-dirs https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim

安裝 vimrc

vimrc 是 vim 配置文件,通過它可以定製各種 vim 特性。

這裏提供了一個最簡配置的的 vimrc 在 github 上: https://github.com/andyshrk/dotvim ,下載下來放到 ~/.vim/ 目錄下。

curl -fLo ~/.vim/vimrc https://raw.githubusercontent.com/andyshrk/dotvim/master/vimrc

vimrc

配置比較精簡, 之簡單解釋兩個地方:

第一部分:安裝了四個插件,這四個插件都是 github star 量非常高的開源項目。

  • LeaderF 主要用來提供高效的搜索:https://github.com/Yggdroot/LeaderF

  • vim-gutentags 自動生成 tags 數據庫 :https://github.com/ludovicchabant/vim-gutentags

  • fzf 也是提供強大的搜索功能,可以和 Leaderf 互補: https://github.com/junegunn/fzf

第二部分: 設置只有在工程項目的根目錄下包含 .root 目錄纔會自動身材 ctags 數據庫,因爲如果你有一堆的大工程,都要生成數據庫的話,還是蠻大。在你想深度分析的工程根目錄下建立一個 .root 目錄,這樣有利於節省空間。

安裝插鍵

[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-8r8rEA4i-1573173809819)(https://andyshrk.gitee.io/imgrepo/VIM/VIM-plug-install.gif)]

  1. 在命令行輸入 vim 然後回車。
  2. 在 vim 界面輸入 : PlugStatus,回車,可以看到所有的插件都處於未安裝狀態
  3. 在 vim 界面輸入 :PlugInstall , 回車,開始安裝插鍵。
  4. 安裝完成後在 vim 界面再輸入 : PlugStatus ,回車,可以看到所有固件已經處於 OK 狀態。

簡單使用

以閱讀 Linux 內核代碼爲例:

在 Linux kernel 的根目錄下建立一個 .root 文件夾:

cd linux-imx
mkidr .root
vim
  • 查找文件: \ + F 組合鍵,然後在輸入文件名關鍵字,按 Enter 選中文件。

操作錄屏請點擊它-》效果圖

可以看到,這裏面不用輸入準確的文件名字,只需要部分關鍵字,匹配度最高的文件出現在最上面,還可以通過 Ctrl + J 或者 K 上下移動光標, 來選擇文件,很高效吧,這是通過 Leaderf 的模糊匹配算法實現的。

  • 跳轉到函數定義處: Ctrl + ] 組合鍵。

操作錄屏請點擊它->動圖效果

光標移動到函數 syscon_regmap_lookup_by_phandle,按 Ctrl + ] 組合鍵,就跳到這個函數原型處,按 Ctrl + o 組合鍵返回。

vim 通過 J K 兩個鍵上下移動光標。

  • 查找那些地方有調用這個函數: Ctrl + F 組合鍵

操作錄屏請點擊它——》動圖效果

Ctrl + J 或者 K 上下移動光標, 來選擇文件,這裏選了atmel-ebi.c 這個文件,然後敲 Enter

鍵跳過去。

  • 查找當前打開文件的函數列表。

操作錄屏請點擊它——》動圖效果

這裏直接用了 LeaderfFunction 這個命令,也可以定義成快捷鍵。

更多的使用技巧可以通過 Leaderf 的 github 查找,或者直接百度也能查到很多用例。

更多原創請掃碼關注公衆號:HackforFun
在這裏插入圖片描述

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