你值得擁有的上古神器:vim

推薦理由:一個完全不需要藉助鼠標就可以完成所有操作的編輯器

前言

筆者並不是 vim 高手,也只是最近在 github 發現的一個開箱即用的 vim 配置,所以在這裏分享出來,所以本文並不會講解如何去配置一個專屬的 vim,對於長期使用 vim 的朋友來說,我這篇文章過於簡單了。之所以決定寫這篇文章,也是因爲自己在第一次聽說 vim 並瞭解到它的強大之後,畫了好些時間去研究如何配置一個屬於自己的 vim ,但是結果都不盡人意,不過這也是因爲我太菜的原因哈哈,許多插件的配置比較複雜,對於很多初次使用 vim 的朋友,可能在配置 vim 的時候就感覺到不容易,所以也就放棄了,曾經的我也是這樣,直到我遇到了它:vimplus。vimplus 目前還不兼容 window,還不能在 windows 上進行安裝,但是如果想要在 windows 上進行使用的話可以在 windows10 上安裝 ubuntu 的子系統,筆者已經試過可行。

效果圖

在講解如何使用之前,有必要貼兩張效果圖:
在這裏插入圖片描述如上圖所示,最左邊的是目錄樹,中間的是打開的文件,而最右邊是當前文件所包含的宏,函數列表以及該文件所定義的所有的變量。
當然在寫代碼的時候,你也可以將左右兩邊的狀態欄關閉,如下圖所示:
在這裏插入圖片描述好了,廢話不多講,在接下來的步驟裏教你如何一步一步地將 vim 用起來。

安裝

筆者的目前使用的操作系統版本是: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 的工程爲例,初次打開時,會出現一部分頭文件找不到的情況,如下圖所示的紅色字體:
在這裏插入圖片描述出現這個問題的原因是頭文件的路徑沒有包含進去,解決辦法時需要 .vimplus 目錄下的一個文件拷貝到當前工程下,然後對拷貝過去的文件做修改,要拷貝的文件如下圖所示:
在這裏插入圖片描述現在我要打開的工程是 rt-thread-3.1.3 ,那麼文件就拷貝到這個目錄下,然後在再在這個文件里加入頭文件路徑,因爲當前工程下的 include 以及 include 中的 libc 裏的頭文件沒有包含,所以加入的內容如下:
在這裏插入圖片描述加入路徑之後,就能找到了,這裏要注意的是每一個路徑的前面必須加入 ‘-isystem’,否則路徑加入失敗,在加入路徑之後,這些標紅的頭文件也就消失了。

tags 文件

我們回顧在使用 keil 等集成開發環境的時候,在閱讀代碼的時候,需要在函數的調用和函數的實現實現跳轉,在 vim 裏也是可以實現的,vim 裏實現跳轉需要在當前工程目錄下具有 tags 文件,所以我們需要在終端生成 tags 文件,輸入以下命令在終端生成 tags 文件,

~/rt-thread-3.1.3$ ctags -R

有了 tags 文件之後,我們就可以在 vim 的左邊打開函數列表名、變量以及宏定義的列表,打開的方式是使用快捷鍵<,> + <t>其中<>裏的表示鍵盤的符號,+號表示的是兩者同時按下,如果再同時按下 <,> + <n>,那麼將出現工程的目錄,也就是我在本篇文章裏的第一張圖那樣子,在進行切換操作時,也可以完全不用鼠標就可以完成,使用 <Ctrl> + <w> + 方向鍵就可以將光標移動至任何一個窗口,這裏方向鍵分別是 hjkl,在這裏比較簡單不做詳細介紹,可以上網瞭解如何使用方向鍵。
要實現函數跳轉,還需要做一件事才行,在打開的 vim 工程裏的命令行裏輸入如下命令後回車:

:set tags=/home/wenzi/rt-thread-3.1.3/tags

注意等號的左右兩邊不能存在空格,其中每次打開工程都需要輸入上述命令,等號右邊是當前工程下的 tags 文件的路徑,如果當前工程是需要經常打開的工程,也可以將上述命令直接加入到 vimplus 裏的 .vimrc 文件裏。這裏如何進入 vim 的命令行,沒有用過 vim 的朋友可能不太瞭解,在進入 vim 後在英文輸入模式下輸入 :
就可以實現,vim 的命令行在 vim 的最底端,如下圖所示:
在這裏插入圖片描述在進行了上述命令行的輸入之後,就可以進行函數的跳轉了,將光標移動到要跳轉的函數處,用快捷鍵 <Ctrl> + <]>("]"時方括號的一部分)就可以實現跳轉,如果要跳回來,用 <Ctrl> + <t>就可以跳回來。

開多個窗口

在有時候,我們在跳轉到函數實現的時候,又想看函數調用這邊的代碼怎麼辦呢,可以開多個窗口的方法實現,比如我先在當前頁面輸入:vsp,將窗口分爲豎着的兩個(也可以輸入:sp,將窗口分爲橫着的兩個)之後,再實現跳轉就可以了,效果如下圖所示:
在這裏插入圖片描述
如果還想繼續往下跳,還可以再分出一個窗口,如下圖所示:
在這裏插入圖片描述總之,在能看清的條件下,窗口數任由你開,想要關閉窗口時,在 vim 的命令行裏輸入 :q!就可以依次關閉窗口。

頭文件跳轉及搜索

在使用 keil 時,我們有時需要跳轉到頭文件裏去看頭文件的代碼,vim 也是能夠實現的,將光標定位到需要跳轉的頭文件處,按下快捷鍵<,> + o就可以完成跳轉,如果要跳回來,按下 <Ctrl> + n或者<Ctrl> + p就可以跳回來。
如何進行搜索呢,按下<Ctrl> + F後,在 vim 命令行會出現提示,在這裏輸入要搜索的字符串即可,在這裏要等待一下,因爲它會跳轉到 ubuntu 的終端進行搜索完之後再跳回 vim,搜索結果如下圖所示:
在這裏插入圖片描述在下方的搜索結果選擇要查看的內容然後回車就可以查看,關閉的方法同樣時輸入:q!

輸入

在這裏筆者不講解輸入的基本操作,比較常規,一些比較快捷的輸入方法筆者現在也還在慢慢地去掌握,還不熟練,但是常規的輸入還是比較簡單的,這裏之所以要說,是因爲最開始配置好的 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 插件的自動補全功能很強大,在補全出現時,可以通過按<Ctrl> + n來進行選擇要輸入的字符串,比如如下圖片:
在這裏插入圖片描述

總結

上述就是關於 vimplus 的基本使用,vim 的學問很深,也以學習曲線陡峭而著稱,筆者現在也只是初級水平,僅僅初級水平也能感受到 vim 的強大,用好 vim 是需要一個長期積累的過程,但是在學習 vim 的過程中,我也在提醒自己,”好的編輯器能提升效率,提高專注度,但是終歸只是編輯器,衡量一個程序員的水平仍舊是寫代碼的實力,而不是製造 bug 的速度“,最後,在使用 vimplus 遇到問題的時候,可以到 github 上給 vimplus 的作者提 issure ,作者很熱心,回覆的很及時,並且幫助文檔很詳細。

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