你值得擁有的上古神器:vim
推薦理由:一個完全不需要借助鼠標就可以完成所有操作的編輯器
前言
筆者并不是 vim 高手,也只是最近在 github 發(fā)現(xiàn)的一個開箱即用的 vim 配置,所以在這里分享出來,所以本文并不會講解如何去配置一個專屬的 vim,對于長期使用 vim 的朋友來說,我這篇文章過于簡單了。之所以決定寫這篇文章,也是因為自己在第一次聽說 vim 并了解到它的強大之后,畫了好些時間去研究如何配置一個屬于自己的 vim ,但是結果都不盡人意,不過這也是因為我太菜的原因哈哈,許多插件的配置比較復雜,對于很多初次使用 vim 的朋友,可能在配置 vim 的時候就感覺到不容易,所以也就放棄了,曾經的我也是這樣,直到我遇到了它:vimplus。vimplus 目前還不兼容 window,還不能在 windows 上進行安裝,但是如果想要在 windows 上進行使用的話可以在 windows10 上安裝 ubuntu 的子系統(tǒng),筆者已經試過可行。
效果圖
在講解如何使用之前,有必要貼兩張效果圖:如上圖所示,最左邊的是目錄樹,中間的是打開的文件,而最右邊是當前文件所包含的宏,函數列表以及該文件所定義的所有的變量。當然在寫代碼的時候,你也可以將左右兩邊的狀態(tài)欄關閉,如下圖所示:好了,廢話不多講,在接下來的步驟里教你如何一步一步地將 vim 用起來。
安裝
筆者的目前使用的操作系統(tǒng)版本是:ubuntu 18.04 vimplus 的 github 地址是:https://github.com/chxuan/vimplus,安裝方式很簡單,在這之前需要安裝 vim ,由于我們在使用的過程中經常需要將代碼里的內容拷貝出來,這里推薦安裝 vim-gnome,安裝方式如下:
sudo apt-get install vim-gnome
git clone https://github.com/chxuan/vimplus.git ~/.vimplus
cd ~/.vimplus
./install.sh
在安裝的過程當中,會讓你選擇是用 Python3 還是Python2 來進行編譯,筆者在這里選擇 Python3 選擇編譯。在安裝好之后,為防止 vimplus 亂碼,必須設置 ubuntu 的終端字體為 Droid Sans Mono Nerd Font ,只需要在終端進行設置就好,無需下載字體,比較簡單,在這里不進行講解。
使用
頭文件問題
在安裝好了之后,就可以用 vim 打開一個工程了,在終端切換到當前要打開的工程目錄之后,采用如下的方式打開,vim 后面空一格加一個 . 表示打開當前目錄下的所有文件
~/rt-thread-3.1.3$ vim .
這里我們打開一個 rt_thread 的工程為例,初次打開時,會出現(xiàn)一部分頭文件找不到的情況,如下圖所示的紅色字體:出現(xiàn)這個問題的原因是頭文件的路徑沒有包含進去,解決辦法時需要 .vimplus 目錄下的一個文件拷貝到當前工程下,然后對拷貝過去的文件做修改,要拷貝的文件如下圖所示:現(xiàn)在我要打開的工程是 rt-thread-3.1.3 ,那么文件就拷貝到這個目錄下,然后在再在這個文件里加入頭文件路徑,因為當前工程下的 include 以及 include 中的 libc 里的頭文件沒有包含,所以加入的內容如下:加入路徑之后,就能找到了,這里要注意的是每一個路徑的前面必須加入 ‘-isystem’,否則路徑加入失敗,在加入路徑之后,這些標紅的頭文件也就消失了。
tags 文件
我們回顧在使用 keil 等集成開發(fā)環(huán)境的時候,在閱讀代碼的時候,需要在函數的調用和函數的實現(xiàn)實現(xiàn)跳轉,在 vim 里也是可以實現(xiàn)的,vim 里實現(xiàn)跳轉需要在當前工程目錄下具有 tags 文件,所以我們需要在終端生成 tags 文件,輸入以下命令在終端生成 tags 文件,
~/rt-thread-3.1.3$ ctags -R
有了 tags 文件之后,我們就可以在 vim 的左邊打開函數列表名、變量以及宏定義的列表,打開的方式是使用快捷鍵 <,> +<t>
其中<>里的表示鍵盤的符號,+號表示的是兩者同時按下,如果再同時按下 <,> +<n>
,那么將出現(xiàn)工程的目錄,也就是我在本篇文章里的第一張圖那樣子,在進行切換操作時,也可以完全不用鼠標就可以完成,使用 <Ctrl>+<w>+ 方向鍵
就可以將光標移動至任何一個窗口,這里方向鍵分別是 hjkl
,在這里比較簡單不做詳細介紹,可以上網了解如何使用方向鍵。要實現(xiàn)函數跳轉,還需要做一件事才行,在打開的 vim 工程里的命令行里輸入如下命令后回車:
:set tags=/home/wenzi/rt-thread-3.1.3/tags
注意等號的左右兩邊不能存在空格,其中每次打開工程都需要輸入上述命令,等號右邊是當前工程下的 tags 文件的路徑,如果當前工程是需要經常打開的工程,也可以將上述命令直接加入到 vimplus 里的 .vimrc 文件里。這里如何進入 vim 的命令行,沒有用過 vim 的朋友可能不太了解,在進入 vim 后在英文輸入模式下輸入 :
就可以實現(xiàn),vim 的命令行在 vim 的最底端,如下圖所示:在進行了上述命令行的輸入之后,就可以進行函數的跳轉了,將光標移動到要跳轉的函數處,用快捷鍵 <Ctrl>+ <]>
("]"時方括號的一部分)就可以實現(xiàn)跳轉,如果要跳回來,用 <Ctrl>+<t>
就可以跳回來。
開多個窗口
在有時候,我們在跳轉到函數實現(xiàn)的時候,又想看函數調用這邊的代碼怎么辦呢,可以開多個窗口的方法實現(xiàn),比如我先在當前頁面輸入 :vsp
,將窗口分為豎著的兩個(也可以輸入 :sp
,將窗口分為橫著的兩個)之后,再實現(xiàn)跳轉就可以了,效果如下圖所示:如果還想繼續(xù)往下跳,還可以再分出一個窗口,如下圖所示:總之,在能看清的條件下,窗口數任由你開,想要關閉窗口時,在 vim 的命令行里輸入 :q!
就可以依次關閉窗口。
頭文件跳轉及搜索
在使用 keil 時,我們有時需要跳轉到頭文件里去看頭文件的代碼,vim 也是能夠實現(xiàn)的,將光標定位到需要跳轉的頭文件處,按下快捷鍵 <,> + o
就可以完成跳轉,如果要跳回來,按下 <Ctrl>+ n
或者 <Ctrl>+ p
就可以跳回來。如何進行搜索呢,按下 <Ctrl>+ F
后,在 vim 命令行會出現(xiàn)提示,在這里輸入要搜索的字符串即可,在這里要等待一下,因為它會跳轉到 ubuntu 的終端進行搜索完之后再跳回 vim,搜索結果如下圖所示:在下方的搜索結果選擇要查看的內容然后回車就可以查看,關閉的方法同樣時輸入 :q!
輸入
在這里筆者不講解輸入的基本操作,比較常規(guī),一些比較快捷的輸入方法筆者現(xiàn)在也還在慢慢地去掌握,還不熟練,但是常規(guī)的輸入還是比較簡單的,這里之所以要說,是因為最開始配置好的 vim 在普通模式和插入模式下光標都是一個小方塊,看著很不舒服,筆者在這里改動了一下,普通模式光標是小方塊,插入模式是豎線,修改的方法是在 .vimplus 文件夾下的 .vimrc 文件下的末尾加上這么一段代碼:
let &t_SI.="\e[5 q" "SI = INSERT mode
let &t_SR.="\e[4 q" "SR = REPLACE mode
let &t_EI.="\e[1 q" "EI = NORMAL mode (ELSE)
自動補全
vimplus 所帶的 YoucompleteMe 插件的自動補全功能很強大,在補全出現(xiàn)時,可以通過按 <Ctrl>+ n
來進行選擇要輸入的字符串,比如如下圖片:
總結
上述就是關于 vimplus 的基本使用,vim 的學問很深,也以學習曲線陡峭而著稱,筆者現(xiàn)在也只是初級水平,僅僅初級水平也能感受到 vim 的強大,用好 vim 是需要一個長期積累的過程,但是在學習 vim 的過程中,我也在提醒自己,”好的編輯器能提升效率,提高專注度,但是終歸只是編輯器,衡量一個程序員的水平仍舊是寫代碼的實力,而不是制造 bug 的速度“,最后,在使用 vimplus 遇到問題的時候,可以到 github 上給 vimplus 的作者提 issure ,作者很熱心,回復的很及時,并且?guī)椭臋n很詳細。
您的閱讀是對我最大的鼓勵,您的建議是對我最大的提升,歡迎點擊下方圖片進入小程序進行評論
免責聲明:本文內容由21ic獲得授權后發(fā)布,版權歸原作者所有,本平臺僅提供信息存儲服務。文章僅代表作者個人觀點,不代表本平臺立場,如有問題,請聯(lián)系我們,謝謝!