【Vim】Cscope安裝基礎和使用

安裝

  • 在CentOS下,咱們能夠直接使用yum命令進行安裝

總體步驟

  • 安裝cscope
  • 配置vim配置文件
  • 生成cscope.out文件
  • 使用cscope命令進行操做

cscope安裝

  • 在cscope主頁進行下載: http://cscope.sourceforge.net
  • cent os的用戶能夠經過yum命令進行安裝
    • yum install cscope
  • 安裝時須要使用 configure配置項 ./configure --with-flex (注:若是平臺是Linux,最好帶上 --with-flex選項)
  • 此外:要在vim中支持cscope,那麼在編譯vim前還須要配置vim的configure文件,加入一個選項。./configure --enable-cscope

生成cscope文件步驟

  • 命令: cscope -Rbkqc++

    • R 表示把全部子目錄裏的文件也創建索引
    • b 表示cscope不啓動自帶的用戶界面,而僅僅創建符號數據庫
    • q生成cscope.in.outcscope.po.out文件,加快cscope的索引速度
    • k在生成索引文件時,不搜索/usr/include目錄
  • c語言和c++語言在生成cscope文件的時候會有所不一樣,具體的區別能夠查閱網上資料數據庫

  • 有c++文件的時候,咱們須要先生成一個cscope的file文件,而後再使用這個file文件進行cscope的操做,不然生成的cscope.file文件是不許的
  • cscope命令執行後,會生成3個文件,cscope.out文件是索引,其他的兩個文件是用於加速索引速度的

查找一個目錄下指定類型的文件

  • 查找全部的c文件:find . -name '*.c'
  • 別的類型,以此類推

配置vim的配置文件

"cscope設置
set cscopequickfix=s-,c-,d-,i-,t-,e-
  • 文中有提到把路徑改爲你本身的源代碼路徑。這個如何設置的,須要再確認
  • cscopequickfix是表示與quickfix相關聯的配置

cscope操做命令

  • :cs f g boot 就能夠查看boot()這個函數的定義了。再輸入:
  • :cs f c boot 就能夠查看boot()函數被調用的地方了。是否是很方便呢?可是你能夠更方便的進行查找,利用快捷鍵!要使用快捷鍵,咱們還要對它進行配置。在vimrc文件裏再添加以下的語句:
  • :cs find s ---- 查找C語言符號,即查找函數名、宏、枚舉值等出現的地方
  • :cs find g ---- 查找函數、宏、枚舉等定義的位置,相似ctags所提供的功能
  • :cs find d ---- 查找本函數調用的函數
  • :cs find c ---- 查找調用本函數的函數
  • :cs find t: ---- 查找指定的字符串
  • :cs find e ---- 查找egrep模式,至關於egrep功能,但查找速度快多了
  • :cs find f ---- 查找並打開文件,相似vim的find功能
  • :cs find i ---- 查找包含本文件的文

定義cscope的快捷鍵

  • nmap s :cs find s =expand("") :cw "查找聲明
  • nmap g :cs find g =expand("") :cw "查找定義
  • nmap c :cs find c =expand("") :cw "查找調用
  • nmap t :cs find t =expand("") :cw "查找指定的字符串
  • nmap e :cs find e =expand("") :cw "查找egrep模式,至關於egrep功能,但查找速度快多了
  • nmap f :cs find f =expand("") :cw "查找文件
  • nmap i :cs find i ^=expand("")$ :cw "查找包含本文件的文件
  • nmap d :cs find d =expand("") :cw "查找本函數調用的函數
    此外網上還有一個cscope_map.vim 能夠下載,下載後,咱們能夠把cscope_map.vim裏從 if has("cscope") 到 endif裏邊的內容複製到/etc/vimrc裏邊去

使用上面的快捷鍵的方法是,將光標定位到你要查找的變量,函數名或者宏定義名處。先按下Ctrl+/,鬆開後快速按下相應的鍵,好比按下g,表示查找該函數或者變量的定義;按下c表示查找本函數被調用的地方。功能很強大。vim

簡單解釋一下上面的快捷鍵映射函數

如: nmap <C-/>s :cs find s <C-R>=expand("<cword>")<CR><CR>flex

  • nmap 表示在vim的普通模式下,即相對於:編輯模塊和可視模式,如下是幾種模式
  • :map 普通,可視模式及操做符等待模式
  • :vmap 可視模式
  • :omap 操做符等待模式
  • :map! 插入和命令行模式
  • :imap 插入模式
  • :cmap 命令行模式
  • <C-/>表示:Ctrl+/
  • <C-R>=expand("cword")整體是爲了獲得:光標下的變量或函數。cword 表示:cursor word, 相似的還有:cfile表示光標所在處的文件名吧
  • <CR><CR>就是回車吧
相關文章
相關標籤/搜索