打造屬於自己的 Vim 神器

2021-06-12 11:39:07 字數 3039 閱讀 8077

table of contents

troubleshootings

further reading

references

為什麼要使用vim?

我們先看看其他人怎麼說:

vim or emacs就好比倚天和屠龍,得一可得天下。 – by vimer.cn

vim就像學鋼琴一樣,一旦學會,終身受益無窮。 –by practical vim

這些話都是出自vim高手之口,對於vim新手,可能暫時沒辦法體會。而我使用vim也有一段時間了,肯定不能算是高手,但至少也是乙個熟手。

我現在主要使用vim來編寫c/c++、js、lua**,我覺得非常方便,比xcode和eclise都強(除錯部分可能相對弱一點)。當然,我還使用vim來修改其它文件,比如html、xml、文字檔案等。現在我正在使用vim書寫本篇博文,非常酷,非常爽!

我轉成vim黨的感受,一句話:

vim streamline my daily workflow and boost my coding productivity.

現在,我客觀地說明一下vim的一些好處:

為什麼不使用vim?

可能有以下幾種聲音:

我在這裡不去說現代的ide有什麼不好,或者vim相比於這些ide來說有哪些優點。我知道這樣說,又馬上會引起一場語言之爭,編輯器大戰出來。其實,真的是沒必要去糾結用什麼開發工具,也沒必要糾結用什麼語言。

只是我覺得程式設計師天生就是用來折騰的。有牛人講過一句話:

每年學習一門新的程式語言,而且這門語言跟你之前熟悉的語言關係越遠越好

現在,我也呼籲一下吧:從現在起,學習一門新的文字編輯工具vim,它跟你之前所用到的編輯器體驗完全不一樣。它的modal editing是獨一無二的,程式設計師值得擁有。而且你不用每年換乙個編輯器,因為你只需要乙個vim編輯器。你越了解它,越使用它,就越會對它愛不釋手。

讓我們一起來折騰吧!vim, the killer! oh~ye.:)

know the saw, then sharpen it.

很多人不使用vim的原因很簡單,除了不習慣它的modal editing之外,更多的是覺得它算不上乙個ide。但是,稍微對vim有過了解的朋友都知道,vim是可以被打造成乙個ide的,而且是專門屬於自己的ide。

為什麼要使用ide,請看此貼

的池建強寫了一系列的博文《誰說vim不是ide》(一、二、三、四。)有興趣的朋友可以去看看,看完後你會發現,原來vim也可以變成ide。:)

關於如何把vim打造成乙個ide,只要你現在隨便谷歌一下,你肯定能找到一大堆貼子。但是,由於vim歷史悠久,有許多貼之已經過時了。

其中最主要的變化有:

其實可以列舉的還有很多,國內也有許多優秀的vimer,歡迎你們推薦優秀的設定vim為ide的教程或者文章,thanks.:)

沒有安裝外掛程式的vim算不了什麼,但是,一旦安裝好外掛程式,vim立馬就牛比了。這裡,作為一名cocos2d-x遊戲程式設計師,我給大家推薦一些外掛程式,關於外掛程式的用法,大家可以檢視help文件,我這裡就不贅述了。

pathogen:該外掛程式用來管理vim的外掛程式,可以讓外掛程式的安裝與解除安裝更加方便。配合github和submodule效果更佳。

nerdtree:該外掛程式會生成工程目錄樹

tagbar:該外掛程式生成函式、變數列表。之前有乙個外掛程式叫taglist,我覺得那個有點不好用,推薦tagbar

ultisnips:類似textmate的snippets,之前有個外掛程式叫snipmate,這個基於snipmate,比snipmate要強很多。強烈推薦。

vim-commentary:注釋**的外掛程式。

syntastic:儲存檔案時檢查語法的外掛程式。

fugitive:方便在vim裡面使用git的外掛程式。

vim-colors-solarized:vim顏色配色方案。

ctrlp:搜尋目錄下的檔案,類似功能的外掛程式有comment-t,我喜歡ctrlp,因為它不依賴於ruby,且是輕量級的.

autoclose:成對生成(),{},

vim-surround:給文字新增「外套」,呵呵,試試就知道有多強大了。

supertab:讓tab鍵可以飛起來。

a:讓cpp檔案在.h和.cpp檔案中切換。

buferexplorer:方便瀏覽buffer的外掛程式。

clangcomplete:自動**補全的外掛程式,比omnicppcomplete好n多,速度有一點影響。不過配合neocomplcache,加上這個版本,效率還不錯。

neocomplcache:關鍵字補全、檔案路徑補全、tag補全等等,各種,非常好用,速度超快。

neocomplcache-clang:解決clang_complete和neocomplcache的衝突。

taghightlight :根據生成的tag檔案,高亮類、變數、函式和關鍵字。

bufkill:讓nerdtree在最後乙個buffer視窗關閉時,不讓其縮放。

vimprj:方便管理工程相關的vim配置。參考如何設定vim為ide中的第一篇e文。

vim-unimpaired:一些不錯的配置,可以讓發揮奇效。

vim-powerline:超有愛的狀態列。

vim-textobj-line:文字物件外掛程式,可以操縱當前行。

更多外掛程式,可以到我的github上面去檢視。可以從本博右上角fork me on github處進入。當然,如果各種vimer有什麼好的外掛程式,也歡迎推薦給我。

這部分主要記錄我在打造神器的過程中遇到的一些問題:

強烈推薦閱讀:《practical vim》

國內站點推薦三個:vimer世界,易水的部落格,水木清華社群

最後推薦乙個vimrc設定技巧**vimbits,這個**會選出最流行的vimrc配置,大家可以時不時去上面淘金。當然,如果你發現好用的vimrc配置,也記得一定要分享出來啊。社群需要你!

google + wiki. :)

posted by guanghui.qu

jan 15th, 2013 vim

打造屬於自己的Vim IDE

troubleshootings further reading references 為什麼要使用vim?讓我們先看看其他人怎麼說 vim or emacs就好比倚天和屠龍,得一可得天下。vim就像學鋼琴一樣,一旦學會,終身受益無窮。這些話都是出自vim高手之口,對於vim新手,可能暫時沒辦法體會...

打造屬於自己的Notepad

notepad top notepad 是一款windows環境下免費開源的 編輯器。自動提示設定 notepad 預設是沒有開啟這個功能的,設定方法如下 開啟 首選項 備份與自動完成 按下圖設定 安裝外掛程式 因為notepad 的小巧,就給了它更多的空間用來擴充套件,其豐富的外掛程式功能讓not...

php打造屬於自己的MVC框架

本篇先介紹一下php的mvc實現原理,我們框架的mvc部分也是基於此原理實現的,但是今天的 並不是框架內的 僅僅為說明原理 一 檔案結構 建立3個資料夾 controller資料夾存放控制器檔案 view資料夾存放視 件 model資料夾存放資料檔案 建立1個index.php 作為唯一入口 二 控...