【Vim】Cscope安裝基礎和使用

來源:互聯網
上載者:User

標籤:http   使用   os   strong   檔案   資料   for   代碼   

安裝
  • 在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 -Rbkq

    • 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表示尋找本函數被調用的地方。功能很強大。

簡單解釋一下上面的快速鍵映射

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

  • nmap 表示在vim的普通模式下,即相對於:編輯模組和可視模式,以下是幾種模式
  • :map 普通,可視模式及操作符等待模式
  • :vmap 可視模式
  • :omap 操作符等待模式
  • :map! 插入和命令列模式
  • :imap 插入模式
  • :cmap 命令列模式
  • <C-/>表示:Ctrl+/
  • <C-R>=expand("cword")總體是為了得到:游標下的變數或函數。cword 表示:cursor word, 類似的還有:cfile表示游標所在處的檔案名稱吧
  • <CR><CR>就是斷行符號吧
相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.