歡迎您光臨本站 註冊首頁

解決linux下代碼查看問題

←手機掃碼閱讀     火星人 @ 2014-03-26 , reply:0

在windows下面我們有source in sight可以方便的瀏覽大工程中的代碼,切換到linux環境下開發時,
我們也可以搭建一個這樣的環境。下面的內容將介紹如何搭建這樣一個開發環境(這裡我們假設讀者已經熟
悉emacs的安裝和配置)。

步驟一 安裝下列軟體

1)cscope (version 15.6) :cscope是一個代碼瀏覽工具,它可以幫你在一個大的工程中,
快速定位到一個函數/變數的聲明位置,所有引用地方等,它可以結合vim和emacs一起使用。
單獨使用cscope時不同文件間的跳轉變得很難處理,這裡我們介紹cscope在emacs環境中的
使用;

2)cedet-1.0pre4 :ecb需要依賴這個;

3)ecb-2.32 :這個是emacs的插件,可以在emacs中劃分好幾個不同的窗口,比如源代碼窗口,
工程目錄窗口,方法窗口等;

4)emacs-22.1.1
5)display-line-number.el 顯示行

步驟二 修改或創建.emacs文件

;;載入我們需要的plugin

(load-file "path/cedet.el")
(load-file "path/ecb.el")
(load-file "path/xcscope.el")
(load-file "path/display-line-number")
(global-display-line-number-mode 1)
(setq display-line-number-format "%4d|")

;;下面是我常用的2個快捷鍵

(grobal-set-key "\M-g" 'goto-line)
(grobal-set-key "\M-m" 'set-mark-command)

步驟三 添加工程

假設我們要把/home/src/linux-2.6.23的源代碼添加到工程中去,我們可以這樣做,
1)cd /home/src/linux-2.6.23 進入源代碼根目錄;
2)touch cscope.sh創建一個腳本文件,內容如下

#!/bin/bash

LNX=/home/src/linux-2.6.23
find $LNX \
-path "$LNX/arch/*" ! -path "$LNX/arch/i386*" -prune -o \
-path "$LNX/include/asm-*" ! -path "$LNX/include/asm-i386*" -prune -o \
-path "$LNX/tmp*" -prune -o \
-path "$LNX/Documentation*" -prune -o \
-path "$LNX/scripts*" -prune -o \
-path "$LNX/drivers*" -prune -o \
-name "*.[chxsS]" -print > cscope.files

cscope -b -k

3)運行完cscope.sh腳本后,運行emacs,通過M-x ecb-activate激活ecb,然後通過
M-x ecb-add-source-path把$LNX加入工程中(註:我通常不喜歡gui界面,所有使用
命令emacs -nw激活emacs)。


步驟四 熟悉命令

1)常用的幾個mode:
M-x ecb-activate '看式代碼模
M-x hs-minor-mode '代碼摺疊
M-x display-line-number-mode-on '顯示行號,需要display-line-number.el
M-x ediff/ediff-revision '比較模式
M-x compile
M-x gdb '調試模式
...
2)窗口切換命令
C-c . g d 進入工程瀏覽窗口
C-c . g s 進入源文件瀏覽窗口
C-c . g m 進入方法瀏覽窗口
C-c . g l 進入最近編輯的文件
C-c . e 進入eshell模式

3)代碼瀏覽命令
C-c s s 所有引用
C-c s c 所有caller
C-c s g 聲明,原型
...

4)列編輯:
M-m/M-w '設置mark
M-x string-insert-regtangle '插入文本,也可以C-x r t
C-x r k '刪除文本,可以使用C-x r y再copy到另一個地方
C-x r c
C-x r d

5)版本比較
假如使用svn管理代碼的話,可以進入emacs后,使用M-x ediff-revision進行版本比較。通常的比較
一般使用M-x ediff/ediff-directiories,非常方便。

補充:emacs或者vim的命令都非常的多,所以如果真的想要把這些工具用好,需要網上多看些相關的資料和
多練習

[火星人 ] 解決linux下代碼查看問題已經有291次圍觀

http://coctec.com/docs/linux/show-post-187646.html