剛開始用 vi 的人,常常抱怨 vi 的功能太小,用起來不夠方便。仔細想一想,程序員常常號稱是像狐貍一樣懶惰的人, vi 的作者們都世界級的頂尖程序員,他們自己是程序員,難道他們還不知道自己需要什么樣的編輯器? 用 vi 的歷史,算上在學校的時間,也有六七
剛開始用vi的人,常常抱怨vi的功能太小,用起來不夠方便。仔細想一想,程序員常常號稱是像狐貍一樣懶惰的人,vi的作者們都世界級的頂尖程序員,他們自己是程序員,難道他們還不知道自己需要什么樣的編輯器?
用vi的歷史,算上在學校的時間,也有六七年光景了。大部分功能都用得比較熟練了,覺得夠用就行了,對少數奇技淫巧也不肖一顧,也就沒有再花過時間學習它的高級用法了。今天,從長生兄那里學了一招,可以直接跳到grep的結果里去,比較實用。
這件事情雖小,卻對我有些觸動,想了想,即使對自己熟悉的東西,閉目塞聽只會使人停留在原處。借這個契機,總結一下一些有用的高級技巧吧。這些技巧,有的并不常用,時間一長,不用忘記了,要用的時間想不起來,要浪費時間去查資料,不如把它們記下來。
當然,這些并不是什么新東西,在網上都可以找得到的,只是我自己做個筆記罷了。
查看符號定義。Vi提供了像Win32下IDE那樣的功能,可以很方便的查看函數原型、結構聲明、宏的定義等。只是它的功能相比之下,要弱一些,不過,結合其它一些技巧,完全可以滿足你的需要。使用這個功能,需要做一些設置:
1. 安裝ctags軟件包。在安裝光盤可以找到,也可以到網上下載源碼包,自己編譯。
2. 生成tags文件。進入到你的源代碼所在的目錄,運行ctags -R命令,它會為當前目錄及子目錄下的源程序建立索引,并在當前目錄下創建一個tags文件,里面保存的是符號索引信息。
3. 設置tags路徑。在vi的起動腳本文件中(一般是~/.vimrc),告訴vi在哪里可以找到tags文件,一般盡量用相對路徑。如:set tags=./tags,../tags,../../tags,../../../tags
4. 跳到指定的符號。
5. 返回到原來的位置。
查看系統函數的幫助。Vi也可以像VC那樣,很方便的跳轉到系統函數的幫助那里。原理很簡單,在vi運行外部命令man就行了:!man fopen,這樣做,可能會覺得有些麻煩,vi提供了快捷的方式:
自動定位編譯錯誤處。在VC里,編譯時,如果出現編譯錯誤,雙擊錯誤信息,編輯器自動切換到出現錯誤的地方,是不是很方便呢?其實不用羨慕,vi也有這種功能,在vi里,運行make命令后,如果有編譯錯誤,你按一下回車,vi自動定位到第一個編譯錯誤那里。記得,要用內置的make命令,即運行:make,不是外部命令:!make。
自動定位查找結果。在寫程序時,我們常常想知道,有哪些地方使用了某個函數,怎么辦呢,你可以在shell里,用grep查找,然后打開對應的文件,可以看到相關的上下文信息。但這樣做比較麻煩,Vi有個內置的grep命令,用起來很方便:
1. 查找。用法和shell中的grep一致。
2. 跳到第一個查找結果處。直接回車就行了。
3. 列出所有的查找結果。:cl命令可以列出所有的查找結果,每個結果都有一個編號。
4. 跳到某項查找結果的文件中。:cc <編號> 命令可以跳到指定編號查找結果的文件中,<編號>是前面用:cc列出來的編號。
5. 返回到原來的位置。
未完待續…
聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com