打造閱讀Linux原始碼利器,linux原始碼利器
打造閱讀Linux原始碼利器
在Linux裡閱讀/編寫代碼一般用vi
但是碰到較大的項目時閱讀原始碼還是比較費力,一直用find 和 grep命令。
其實,我們自己可以打造一個閱讀原始碼的vim,這樣大大提高工作效率。
閱讀源碼利器組合:Vi + Ctags + taglist
以下為最終實現的:
安裝Ctags
Ctags可以到http://ctags.sourceforge.net下載。目前我下載的是ctags-5.8.tar.gz
tar -xvzf ctags-5.8.tar.gz
cd ctags-5.8
./configure
make
make install
然後可到源碼目錄,用以下命令產生名位tags的索引檔案:
ctags -R
這樣以後,在該目錄下可以這樣使用vi
Ctrl + ] //尋找游標下的標籤,比如說函數或 結構體
Ctrl + t //返回跳轉到標籤檔案前的上一個地方
這樣是不是很方便呢。
關於ctags更詳細的用法,可以ctags –help 或者 man ctags
安裝taglist外掛程式
我下載的zip包名稱為:taglist_45.zip
把它copy到 ~/.vim/下面,如果沒有~/.vim目錄,可以自己建立一個:
mkdir -p ~/.vim/plugin
cd ~/.vim
mkdir after
mkdir colors
mkdir doc
mkdir ftplugin
mkdir syntax
然後:
unzip taglist_45.zip
這會在你的~/.vim/plugin和~/.vim/doc目錄中各放入一個檔案:
plugin/taglist.vim – taglist外掛程式
doc/taglist.txt - taglist協助檔案
這樣文檔和外掛程式都安裝好了。
Taglist提供了相當多的功能,我的taglist.vim中這樣配置:
""""""""""""""""""""""""""""""
let Tlist_Show_One_File = 1 "不同時顯示多個檔案的tag,只顯示當前檔案的
let Tlist_Exit_OnlyWindow = 1 "如果taglist視窗是最後一個視窗,則退出vim
let Tlist_Use_Right_Window = 1 "在右側視窗中顯示taglist視窗
閱讀源碼
配置好之後,隨意開啟一個c源碼檔案。
輸入以下命令就可以調出taglist
TlistOpen
輸入以下命令可以關閉taglist
TlistClose
游標從 vi 和 taglist之間相互切換
Ctrl + ww (注意是兩個w)
在taglist視窗中,可以使用下面的快速鍵:
<CR> 跳到游標下tag所定義的位置,用滑鼠雙擊此tag功能也一樣
o 在一個新開啟的視窗中顯示光線標下tag
<Space> 顯示光線標下tag的原型定義
u 更新taglist視窗中的tag
s 更改排序方式,在按名字排序和按出現順序排序間切換
x taglist視窗放大和縮小,方便查看較長的tag
+ 開啟一個摺疊,同zo
- 將tag摺疊起來,同zc
* 開啟所有的摺疊,同zR
= 將所有tag摺疊起來,同zM
[[ 跳到前一個檔案
]] 跳到後一個檔案
q 關閉taglist視窗
<F1> 顯示協助
怎閱讀linux的原始碼?
1.精通C
2.懂彙編、電腦體繫結構、作業系統原理
3.懂演算法和資料結構
4.找一本介紹linux原始碼的書看,按照書上的步驟做。
5.當然,你要有linux原始碼,並且儘可能多地閱讀相關文檔。
www.oldlinux.org上有一個《linux核心原始碼完全注釋》的電子文檔,是基於linux0.11版的核心注釋的。我承認,由於對C的一知半解,加上沒學過彙編和體繫結構,演算法和資料結構也勉勉強強,雖然只有1萬行左右的代碼,還是沒能堅持把它看完。
要是你不喜歡看電子版的,該書已由機械工業出版社出版,你可以向出版社聯絡購買。
對於閱讀LINUX原始碼的問題
Linux是用c寫的吧?既然不想用文字編輯器看的話開發C的IDE應該都可以看吧?也許還能調試呢
看書的話書應該講得夠詳細阿
我也打算看呢,所以不久也會遇到同樣的問題,不過C還沒學精通,過段時間吧,我下了些Linux核心完全注釋之類的資料
目前我用Eclipse CDT寫C,可能到時候用它閱讀Linux原始碼
不過官網早已有
Eclipse IDE for C/C++ Developers, 87 MB了
:www.eclipse.org/downloads/
不知道樓主用什麼寫c呢
完了記得把解決方案共用一下噢