2013年8月7日 星期三

在Linux中取代Source Insight瀏覽source code

原本在Windows中使用source insight,不過source insight真的是太複雜了,功能太多。
後來試SlickEdit,簡單多了,好用,而且有Linux跟Windows兩個版本~~~
不過電腦實在是跑不動呀!每次都要泡杯茶,喝完,才看得到結果~~~
這就是目前的福利,哈 ^^
網路上很多人都用VIM+Cscope+Ctags,自己也來試試...
  1. 安裝
    apt-get install vim
    apt-get install cscope
    apt-get install exuberabt-ctags
  2. 使用vim
    code_complete : function parameter complete, code snippets, and much more
    http://www.vim.org/scripts/script.php?script_id=1764
    下載放置到/usr/share/vim/vim73/plugin增加額外的功能
    taglist.vim : Source code browser (supports C/C++, java, perl, python, tcl, sql, php, etc) http://www.vim.org/scripts/script.php?script_id=273
    下載放置到/usr/share/vim/vim73/plugin及/usr/share/vim/vim73/doc

    $vim test.txt
    分為指令模式與編輯模式
    透過"i"或是"a"鍵進入編輯模式
    在編輯模式按"Esc"鍵回指令模式

    $vim -t ??? 顯示包含??? tag的文件

    指令模式:
    "i" 進入編輯模式,由游標處開始編輯,後面的字隨即向後退
    "a" 進入編輯模式,游標後移後開始編輯
    ":q" 離開vim
    ":w" 存檔
    ":wq" 存檔後離開vim
    ":q!" 忽略修改,強制離開
    ":/" 搜尋文字,"n"搜尋下一個
    "yy" 複製當前游標所在列
    "dd" 刪除當前所在列
    ":ta ???" 顯示包含??? tag的文件
    ":set tags=" 定義tag文件的路徑
    ":TlistToggle" 顯示或關閉taglist視窗
    ":TlistOpen" 開啟taglist視窗
    ":TlistClose" 關閉taglist視窗
    ":cs add cscope.out" 增加cscope.out
    ":cs help" cscope help
    "p" 貼上

    編輯模式:
    "Esc" 返回指令模式

    配置文件
    /etc/vim/vimrc
  3. 使用cscope
    $cd到source code目錄
    $cscope -R
    -R Recurse directories for files
    -C Ignore letter case when searching
    -V Print the version number
    輸入後會跳至cscope視窗,上方為搜尋結果顯示視窗,下方為搜尋關鍵字輸入視窗
    可透由"Tab"鍵切換
    在cscope中按下"Ctrl"+"c"切換是否區分大小寫模式
    搜尋結果視窗:
    "Enter" 進入檔案編輯
    尋找關鍵字區域:
    "Ctrl"+"c" 忽略大小寫
    "Ctrl"+"d" 離開Cscope
  4. 使用ctags
    $cd到source code目錄
    $ctags -R
    $cscope
    當找到某個關鍵字的檔案時,可利用
    按下"Ctrl"+"]"跳到該函式被宣告的地方
    按下"Ctrl"+"t"回到原來的地方
  5. 可以透由底下方式結合使用
    find . -name "*.cc" -o -name "*.c"-o -name "*.h" > cscope.files
    cscope -bkq -i cscope.files
    ctags -R
  6. taglist視窗指令
    "Enter" 跳到指標下tag所定義的位置
    "Space" 顯示指標下tag的定義
    "+" 打開折疊
    "-" 收起折疊
    "*" 打開所有折疊
    "=" 收起所有折疊
    "x" taglist視窗放大縮小
    "[[" 跳到前一个文件
    "]]" 跳到後一个文件
    <F1> Help
    "Ctrl"+"w"+"w" 切換taglist與VIM視窗
寫成bash檔
filetree.sh
#!/bin/bash
if [ "$1" = "-h" ] || [ "$1" = "-H" ] || [ "$1" == "--h" ] || [ "$1" == "--H" ] || [ "$1" == "-help" ] || [ "$1" == "--help" ]; then
echo "filetree"
else
sudo ctags -R
sudo cscope -Rbkq
echo "---THE END---"
fi
exit 0

沒有留言:

張貼留言