1. 程式人生 > >vim學習-vim框架解讀&一鍵配置ide環境

vim學習-vim框架解讀&一鍵配置ide環境

VIM介紹

vim是linux下的一個開源的文字編輯器,特點是全部操作通過命令列實現,也不需要圖形介面,從而可以很方便地通過ssh等方式連線到伺服器上修改檔案。vim的配置有些複雜,對於不想麻煩的同學,請嘗試使用我的一鍵式配置工具

vim的效率

這是一個經常容易引發爭執的話題,對於實用主義者而言,認為vim的大量繁瑣命令操作既不直觀也容易忘記,同時基於vim的古老歷史,覺得完全沒有必要浪費時間在一個“過時”的編輯器上,而應把精力花在程式碼本身。而對於另外一些人尤其是linux的擁躉而言,則必然是唯命令列為王道,GUI都是蠢貨,最後還要fuck the nvida

我的工作中大量的時間需要直接ssh到linux環境伺服器上進行程式碼編譯修改,更新提交,以及工程除錯,同時由於工作要求也需要在windows環境中做很多的程式碼修改和檢視,因此在window和linux環境都有較多的程式碼編輯的經驗,因此我覺得對這個問題我是比較有發言權的。

  • 命令列操作具有一種特殊的美感,對於喜歡這種美感的朋友強烈建議深入學習一下vim,可以將你的日常事務的“命令列”化提升一個臺階,逼格瞬間拉開一眾滑鼠黨一個身位
  • 如果有vim的替代品,尤其是本身主要是在window環境或者IDE環境進行程式碼編輯的,完全沒有必要使用vim,sourceInsight或者eclipse什麼的直接上手用效率高多了
  • 如果常常需要登陸到沒有GUI的linux環境,強烈建議深入學習一下vim,因為這種情況下一般的替代方法如samba共享到windows環境等,根據我的經驗,配置很麻煩而且不穩定,同時由於網路的問題效率會很低,更關鍵的是很多時候由於許可權問題無法這麼做。

vim的能力

vim一大特點是豐富的擴充套件性,這一點對於習慣了window編輯器朋友可能不太能理解,舉個例子,這是我目前使用的vim的配置截圖:
在這裡插入圖片描述
在這個例子中,vim可以實現目錄檢視、檔名動態搜尋、C程式碼查詢定義引用、切分窗格並隨意調整窗格大小等等一系列功能,我在windows環境常用的是sourceInsight,目前我用到的功能中基本可以覆蓋90%以上sourceInsight的功能,而且有些vim的功能是sourceInsight沒有或者不好用的,比如視窗切割,更關鍵的是,還有大量不斷活躍更新的vim的擴充套件可以進一步提升他的可用性,而這所有的工作,可以完全以一個很小的效能開銷通過完全的命令列操作

實現在一個ssh登陸的完全字元化的控制檯上!如果你願意,你自己就可以寫一個vim外掛滿足你自己的使用,從這個角度,vim幾乎無所不能!

vim的使用和配置是需要一定學習成本的,但遠沒有那麼嚇人,但對於不想花太多時間在環境配置的同學,我特意寫了一個一鍵式的vim配置工具,完全不需要其他任何準備,直接執行我的工具就可以實現上圖一樣的配置功能!這個vim工具我放在github上了,歡迎大家使用!如果能提issue甚至 PR給我,那更是非常歡迎!
我的vim一鍵式環境配置工具

vim的結構組成

  • 預設vim命令
    vim預設情況下開啟就是是一個非常簡潔的單頁面的文字編輯器,預設有一些命令操作集合,這些預設命令無法更改,全域性生效,即使通過外掛實現類似功能的情況下預設命令也依然有效,命令中常用的包括
    移動:jkhl
    刪除:d
    插入:i
    儲存:w
    退出:q
    …等等,vim的命令可以直接組合使用,如wq就是儲存後推出,基本vim命令見我的vim學習-基本命令

  • vim配置
    vim本身是由一個vim指令碼語言來實現擴充套件功能的,在vim介面中按esc後會進入命令模式,例如此時輸入set hlsearch ,會使能高亮搜尋結果的功能,類似這樣
    在這裡插入圖片描述
    vim的配置命令可以寫入到一個指令碼檔案中,此時每次開啟vim都會按照這個配置啟動,這個指令碼檔案被規定為.vimrc,且必須放在系統目錄或者家目錄下,例如/home/someone/.vimrc,同時配置是按照最近目錄覆蓋的,即如果你同時在~目錄和系統目錄etc下新建了.vimrc檔案,則以~目錄下為準

  • vim的外掛使用和管理
    vim的外掛全部放置在~/.vim/目錄中,預設情況下.vimrc.vim/目錄均是沒有的,vim的外掛的使用安裝方式在歷史上不斷演進,目前比較流行的是使用專門的外掛管理器進行管理,有多種外掛管理器可供選擇,我使用的是vundle,要注意外掛管理器本身就是一種vim的外掛,因此在安裝外掛管理器時需要手動將其安裝到.vim/目錄中,關於外掛使用和外掛管理器本身包含大量內容,請參閱我的vim學習-vundle外掛管理