cscope使用命令
生活随笔
收集整理的這篇文章主要介紹了
cscope使用命令
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
cscope使用命令
在此描述您的新便箋。
1, cscope安裝
?? 1. 軟件下載:http://sourceforge.net/project/showfiles.php?group_id=4664
?? 2. 軟件安裝:?
?? 3.
???????? 1. ./configure --with-flex? (注:如果平臺(tái)是Linux,最好帶上 --with-flex選項(xiàng))
???????? 2. make? (注:我沒有遇到錯(cuò)誤)
???????? 3. make install (注: 直接安裝好了)
2,cscope配置
?? 1. 修改vim配置文件vimrc.你可以修改/etc/vimrc使用所有用戶都使用本配置文件,當(dāng)然你還可以修改~/.vimrc
?? 2.
???????? 1. 下載配置文件:cscope_map.vim ?
???????? 2. 把cscope_map.vim里從 if has("cscope")? 到 endif里邊的內(nèi)容復(fù)制到/etc/vimrc里邊去
???????? 3. 里邊的命令意思請看下邊文章
3,cscope使用
?? 1. 建立cscope使用的索引文件
?? 2.
???????? 1. 在你需要瀏覽源碼的根目錄下(如你想用cscope看linux源碼)使用下面命令:
???????? 2.
??????????????? * #: cscope -Rbkq<回車>
???????? 3. R 表示把所有子目錄里的文件也建立索引
???????? 4. b 表示cscope不啟動(dòng)自帶的用戶界面,而僅僅建立符號(hào)數(shù)據(jù)庫
???????? 5. q生成cscope.in.out和cscope.po.out文件,加快cscope的索引速度
???????? 6. k在生成索引文件時(shí),不搜索/usr/include目錄
?? 3. 在源碼根目錄下打開任意.c文件,使用如下命令:
?? 4.
???????? 1. Ctrl+]將跳到光標(biāo)所在變量或函數(shù)的定義處 Ctrl+T返回
???????? 2. :cs find s ---- 查找C語言符號(hào),即查找函數(shù)名、宏、枚舉值等出現(xiàn)的地方
??????????? :cs find g ---- 查找函數(shù)、宏、枚舉等定義的位置,類似ctags所提供的功能
??????????? :cs find d ---- 查找本函數(shù)調(diào)用的函數(shù)
??????????? :cs find c ---- 查找調(diào)用本函數(shù)的函數(shù)
??????????? :cs find t: ---- 查找指定的字符串
??????????? :cs find e ---- 查找egrep模式,相當(dāng)于egrep功能,但查找速度快多了
??????????? :cs find f ---- 查找并打開文件,類似vim的find功能
??????????? :cs find i ---- 查找包含本文件的文
???????? 3. 2的所以命令::也可以且按銉來實(shí)現(xiàn):
???????? 4.
?????????????? 1. Ctrl+\ 再按 s 表示:cs find s命令
?????????????? 2. 同理實(shí)現(xiàn)cs find + g,d,c,t,e,f,i命令
?? 5. cscope_map.vim說明:
?? 6.
???????? 1. 有英文注釋的我就不說明了,我就說一下里邊的鍵map映射
???????? 2. 如: nmap <C-\>s :cs find s <C-R>=expand("<cword>")<CR><CR>
???????? 3.
?????????????? 1. nmap 表示在vim的普通模式下,即相對于:編輯模塊和可視模式,以下是幾種模式
?????????????? 2.
???????????????????? 1.???????? :map??????????? 普通,可視模式及操作符等待模式
??????????????????????????????? :vmap?????????? 可視模式
??????????????????????????????? :omap?????????? 操作符等待模式
??????????????????????????????? :map!?????????? 插入和命令行模式
??????????????????????????????? :imap?????????? 插入模式
??????????????????????????????? :cmap?????????? 命令行模式
?????????????? 3. <C-\>表示:Ctrl+\
?????????????? 4. s表示輸入(即按:s)s
?????????????? 5. : 表示輸入':'
?????????????? 6. “cs find s"表示輸入"cs find s"也即是要輸入的命令
?????????????? 7. <C-R>=expand("cword")總體是為了得到:光標(biāo)下的變量或函數(shù)。cword 表示:cursor word, 類似的還有:cfile表示光標(biāo)所在處的文件名
?????????????? 8. 將下面的內(nèi)容添加到~/.vimrc中, 并重啟vim:
????????????????? nmap <C-_>s :cs find s <C-R>=expand("<cword>")<CR><CR>
????????????????? nmap <C-_>g :cs find g <C-R>=expand("<cword>")<CR><CR>
????????????????? nmap <C-_>c :cs find c <C-R>=expand("<cword>")<CR><CR>
????????????????? nmap <C-_>t :cs find t <C-R>=expand("<cword>")<CR><CR>
????????????????? nmap <C-_>e :cs find e <C-R>=expand("<cword>")<CR><CR>
????????????????? nmap <C-_>f :cs find f <C-R>=expand("<cfile>")<CR><CR>
????????????????? nmap <C-_>i :cs find i ^<C-R>=expand("<cfile>")<CR>$<CR>
????????????????? nmap <C-_>d :cs find d <C-R>=expand("<cword>")<CR><CR>
????????????????? 當(dāng)光標(biāo)停在某個(gè)你要查找的詞上時(shí), 按下<C-_>g, 就是查找該對象的定義, 其他的同理.
????????????????? 按這種組合鍵有一點(diǎn)技巧,按了<C-_>后要馬上按下一個(gè)鍵,否則屏幕一閃就回到nomal狀態(tài)了
????????????????? <C-_>g的按法是先按"Ctrl+Shift+-", 然后很快再按"g"
?????????????? 9.
????????????????? 使用vim是出現(xiàn)了下面的錯(cuò)誤
????????????????? 處理 /root/.vim/plugin/cscope_map.vim 時(shí)發(fā)生錯(cuò)誤:
????????????????? 第?? 42 行:
????????????????? E568: 重復(fù)的 cscope 數(shù)據(jù)庫未被加入
????????????????? ?
????????????????? 解決辦法:
????????????????? 在.vimrc中加上
????????????????? set nocscopeverbose
注意:上面這句盡量加在文件的最后面,如果不出錯(cuò)就不用管了
????????????????? 原因是/etc/vimrc中已經(jīng)將cscope.out讀入,在plugin中也讀了一遍,這樣就有兩遍
??????????? -----------------------------------------------------------------------------------
nmap <C-_>s :cs find s <C-R>=expand("<cword>")<CR><CR>
命令中<CR>為回車,也是expand("<cword>")命令終結(jié)符。
<C-R>用于插入寄存器的內(nèi)容:
CTRL-R {0-9a-z"%#*+:.-=} *i_CTRL-R*
插入寄存器內(nèi)容。在輸入 CTRL-R 和第二個(gè)字符之間,'"' 會(huì)顯示出
來,以提示你需要輸入寄存器的名字。文本插入方式和直接輸入相同,
但不使用映射和縮寫。如果設(shè)置了 'textwidth'、'formatoptions' 或
'autoindent',插入的結(jié)果會(huì)受到影響。這和使用 "p" 命令和用鼠標(biāo)
粘貼文本不同。
特殊寄存器:
'"' 無名寄存器,包含最近刪除或抽出的文本
'%' 當(dāng)前文件名
'#' 輪換文件名
'*' 剪貼板內(nèi)容 (X11: 主選擇)
'+' 剪貼板內(nèi)容
'/' 最近的搜索模式
':' 最近的命令行
'.' 最近插入的文本
'-' 最近的行內(nèi) (少于一行) 刪除
*i_CTRL-R_=*
'=' 表達(dá)式寄存器;你會(huì)被提示輸入一個(gè)表達(dá)式 (見
|expression|)
注意 0x80 (十進(jìn)制 128) 用于特殊鍵。例如,你可
以這樣移動(dòng)光標(biāo)向上:
CTRL-R ="\<Up>"
用 CTRL-R CTRL-R 可以按本義插入文本。
如果結(jié)果是 |List|,里面的項(xiàng)目被看作行,之間以
換行符連接。
如果結(jié)果是浮點(diǎn)數(shù),自動(dòng)轉(zhuǎn)化為字符串。
關(guān)于寄存器見 |registers|。{Vi 無此功能}
<C-R>=expand("<cword>")<CR>的作用就是插入光標(biāo)下的字。彩色
在此描述您的新便箋。
1, cscope安裝
?? 1. 軟件下載:http://sourceforge.net/project/showfiles.php?group_id=4664
?? 2. 軟件安裝:?
?? 3.
???????? 1. ./configure --with-flex? (注:如果平臺(tái)是Linux,最好帶上 --with-flex選項(xiàng))
???????? 2. make? (注:我沒有遇到錯(cuò)誤)
???????? 3. make install (注: 直接安裝好了)
2,cscope配置
?? 1. 修改vim配置文件vimrc.你可以修改/etc/vimrc使用所有用戶都使用本配置文件,當(dāng)然你還可以修改~/.vimrc
?? 2.
???????? 1. 下載配置文件:cscope_map.vim ?
???????? 2. 把cscope_map.vim里從 if has("cscope")? 到 endif里邊的內(nèi)容復(fù)制到/etc/vimrc里邊去
???????? 3. 里邊的命令意思請看下邊文章
3,cscope使用
?? 1. 建立cscope使用的索引文件
?? 2.
???????? 1. 在你需要瀏覽源碼的根目錄下(如你想用cscope看linux源碼)使用下面命令:
???????? 2.
??????????????? * #: cscope -Rbkq<回車>
???????? 3. R 表示把所有子目錄里的文件也建立索引
???????? 4. b 表示cscope不啟動(dòng)自帶的用戶界面,而僅僅建立符號(hào)數(shù)據(jù)庫
???????? 5. q生成cscope.in.out和cscope.po.out文件,加快cscope的索引速度
???????? 6. k在生成索引文件時(shí),不搜索/usr/include目錄
?? 3. 在源碼根目錄下打開任意.c文件,使用如下命令:
?? 4.
???????? 1. Ctrl+]將跳到光標(biāo)所在變量或函數(shù)的定義處 Ctrl+T返回
???????? 2. :cs find s ---- 查找C語言符號(hào),即查找函數(shù)名、宏、枚舉值等出現(xiàn)的地方
??????????? :cs find g ---- 查找函數(shù)、宏、枚舉等定義的位置,類似ctags所提供的功能
??????????? :cs find d ---- 查找本函數(shù)調(diào)用的函數(shù)
??????????? :cs find c ---- 查找調(diào)用本函數(shù)的函數(shù)
??????????? :cs find t: ---- 查找指定的字符串
??????????? :cs find e ---- 查找egrep模式,相當(dāng)于egrep功能,但查找速度快多了
??????????? :cs find f ---- 查找并打開文件,類似vim的find功能
??????????? :cs find i ---- 查找包含本文件的文
???????? 3. 2的所以命令::也可以且按銉來實(shí)現(xiàn):
???????? 4.
?????????????? 1. Ctrl+\ 再按 s 表示:cs find s命令
?????????????? 2. 同理實(shí)現(xiàn)cs find + g,d,c,t,e,f,i命令
?? 5. cscope_map.vim說明:
?? 6.
???????? 1. 有英文注釋的我就不說明了,我就說一下里邊的鍵map映射
???????? 2. 如: nmap <C-\>s :cs find s <C-R>=expand("<cword>")<CR><CR>
???????? 3.
?????????????? 1. nmap 表示在vim的普通模式下,即相對于:編輯模塊和可視模式,以下是幾種模式
?????????????? 2.
???????????????????? 1.???????? :map??????????? 普通,可視模式及操作符等待模式
??????????????????????????????? :vmap?????????? 可視模式
??????????????????????????????? :omap?????????? 操作符等待模式
??????????????????????????????? :map!?????????? 插入和命令行模式
??????????????????????????????? :imap?????????? 插入模式
??????????????????????????????? :cmap?????????? 命令行模式
?????????????? 3. <C-\>表示:Ctrl+\
?????????????? 4. s表示輸入(即按:s)s
?????????????? 5. : 表示輸入':'
?????????????? 6. “cs find s"表示輸入"cs find s"也即是要輸入的命令
?????????????? 7. <C-R>=expand("cword")總體是為了得到:光標(biāo)下的變量或函數(shù)。cword 表示:cursor word, 類似的還有:cfile表示光標(biāo)所在處的文件名
?????????????? 8. 將下面的內(nèi)容添加到~/.vimrc中, 并重啟vim:
????????????????? nmap <C-_>s :cs find s <C-R>=expand("<cword>")<CR><CR>
????????????????? nmap <C-_>g :cs find g <C-R>=expand("<cword>")<CR><CR>
????????????????? nmap <C-_>c :cs find c <C-R>=expand("<cword>")<CR><CR>
????????????????? nmap <C-_>t :cs find t <C-R>=expand("<cword>")<CR><CR>
????????????????? nmap <C-_>e :cs find e <C-R>=expand("<cword>")<CR><CR>
????????????????? nmap <C-_>f :cs find f <C-R>=expand("<cfile>")<CR><CR>
????????????????? nmap <C-_>i :cs find i ^<C-R>=expand("<cfile>")<CR>$<CR>
????????????????? nmap <C-_>d :cs find d <C-R>=expand("<cword>")<CR><CR>
????????????????? 當(dāng)光標(biāo)停在某個(gè)你要查找的詞上時(shí), 按下<C-_>g, 就是查找該對象的定義, 其他的同理.
????????????????? 按這種組合鍵有一點(diǎn)技巧,按了<C-_>后要馬上按下一個(gè)鍵,否則屏幕一閃就回到nomal狀態(tài)了
????????????????? <C-_>g的按法是先按"Ctrl+Shift+-", 然后很快再按"g"
?????????????? 9.
????????????????? 使用vim是出現(xiàn)了下面的錯(cuò)誤
????????????????? 處理 /root/.vim/plugin/cscope_map.vim 時(shí)發(fā)生錯(cuò)誤:
????????????????? 第?? 42 行:
????????????????? E568: 重復(fù)的 cscope 數(shù)據(jù)庫未被加入
????????????????? ?
????????????????? 解決辦法:
????????????????? 在.vimrc中加上
????????????????? set nocscopeverbose
注意:上面這句盡量加在文件的最后面,如果不出錯(cuò)就不用管了
????????????????? 原因是/etc/vimrc中已經(jīng)將cscope.out讀入,在plugin中也讀了一遍,這樣就有兩遍
??????????? -----------------------------------------------------------------------------------
nmap <C-_>s :cs find s <C-R>=expand("<cword>")<CR><CR>
命令中<CR>為回車,也是expand("<cword>")命令終結(jié)符。
<C-R>用于插入寄存器的內(nèi)容:
CTRL-R {0-9a-z"%#*+:.-=} *i_CTRL-R*
插入寄存器內(nèi)容。在輸入 CTRL-R 和第二個(gè)字符之間,'"' 會(huì)顯示出
來,以提示你需要輸入寄存器的名字。文本插入方式和直接輸入相同,
但不使用映射和縮寫。如果設(shè)置了 'textwidth'、'formatoptions' 或
'autoindent',插入的結(jié)果會(huì)受到影響。這和使用 "p" 命令和用鼠標(biāo)
粘貼文本不同。
特殊寄存器:
'"' 無名寄存器,包含最近刪除或抽出的文本
'%' 當(dāng)前文件名
'#' 輪換文件名
'*' 剪貼板內(nèi)容 (X11: 主選擇)
'+' 剪貼板內(nèi)容
'/' 最近的搜索模式
':' 最近的命令行
'.' 最近插入的文本
'-' 最近的行內(nèi) (少于一行) 刪除
*i_CTRL-R_=*
'=' 表達(dá)式寄存器;你會(huì)被提示輸入一個(gè)表達(dá)式 (見
|expression|)
注意 0x80 (十進(jìn)制 128) 用于特殊鍵。例如,你可
以這樣移動(dòng)光標(biāo)向上:
CTRL-R ="\<Up>"
用 CTRL-R CTRL-R 可以按本義插入文本。
如果結(jié)果是 |List|,里面的項(xiàng)目被看作行,之間以
換行符連接。
如果結(jié)果是浮點(diǎn)數(shù),自動(dòng)轉(zhuǎn)化為字符串。
關(guān)于寄存器見 |registers|。{Vi 無此功能}
<C-R>=expand("<cword>")<CR>的作用就是插入光標(biāo)下的字。彩色
總結(jié)
以上是生活随笔為你收集整理的cscope使用命令的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Ubuntu下创建Vim+Taglist
- 下一篇: 6410 实现 linux 串口驱动详解