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

Vim setup

先上療效,給你們看效果:python

安裝 Vim

首先說明,vi 和 vim 是兩個不一樣的版本,vi 是 vim 的精簡版本,功能要弱不少,因此若是你的系統裏面只有 vi,請執行 apt install vim 命令更新到 vim,並且最好更新到 8.0 版本。linux

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

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

注意區分。算法

安裝 Universal-ctags

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

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

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

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

安裝 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/d... ,下載下來放到 ~/.vim/ 目錄下。

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

vimrc

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

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

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

安裝插鍵

PlugInstall

  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
qrcode_for_gh_c8e36f389b90_258.jpg

相關文章
相關標籤/搜索