快速配置vim ctags cscope

2021-08-20 10:38:36 字數 4162 閱讀 9747

配置vim是linux環境下開發的日常,這裡記錄如何快捷地配置好vim+ctags+cscope開發環境。

外掛程式管理器

git clone  ~/.vim/bundle/vundle.vim
ctags、cscope

要使用這兩個功能,除了要配置vim外,還有安裝相應的軟體。

$ sudo apt-get install ctags cscope
建立~/.vimrc檔案,內容如下:

set paste

set encoding=utf-8

syntax on

set autoindent

set smartindent

set tabstop=4

set softtabstop=4

set expandtab

set ai!

set cindent shiftwidth=4

setnumber

set ruler

set laststatus=2

set statusline=%<%f\ [%l]

colorscheme desert

set mouse=a

set guifont=mono\ 12

" 普通模式下,全選快捷鍵

nmap ggvg$

" 選中狀態下,ctrl+c複製到+暫存器

vmap "+y

" 普通模式下,ctrl+v貼上

nmap p

" ----------------------------- vundle -----------------------------

set nocompatible

filetype off

set rtp+=~/.vim/bundle/vundle.vim

call vundle#begin()

plugin 'vundlevim/vundle.vim'

call vundle#end()

filetype plugin indent on

" ----------------------------- nerdtree -----------------------------

plugin 'the-nerd-tree'

let nerdtreeignore=['\.pyc','\~$','\.swp','\.o','\.ko','\.symvers','\.order','\.mod.c']

map :nerdtreetoggle:tlist" ----------------------------- taglist -----------------------------

plugin 'taglist.vim'

let tlist_show_one_file=1 "不同時顯示多個檔案的tag,只顯示當前檔案的

let tlist_exit_onlywindow=1

"如果taglist視窗是最後乙個視窗,則退出vim

let tlist_ctags_cmd="/usr/bin/ctags" "將taglist與ctags關聯

let tlist_use_right_window=1

" ----------------------------- cscope -----------------------------

if has("cscope")

set csprg=/usr/bin/cscope

set csto=0

set cst

set nocsverb

"addany

database

incurrent directory

if filereadable("cscope.out")

cs add cscope.out

" else add database pointed to by environment

elseif $cscope_db != ""

cs add $cscope_db

endif

set csverb

endif

nmap s :cs find s =expand("

")nmap g :cs find g =expand("

")nmap c :cs find c =expand("

")nmap t :cs find t =expand("

")nmap e :cs find e =expand("

")nmap f :cs find f =expand("

")nmap i :cs find i ^=expand("

")$nmap d :cs find d =expand("

")

儲存並退出,然後再次開啟vim,輸入:plugininstall然後回車,等待外掛程式管理器安裝好外掛程式。

執行以下命令:

$ ctags -r *

$ find ./ -name "*.c" -o -name "*.h" -o -name "*.s" -o -name "*.s" -o -name "*.dts" -o -name "*.dtsi" > cscope.files

$ cscope -bkq -i cscope.files

第一句遞迴當前目錄,生成tags檔案,第二句找到linux核心常用檔案型別並寫入cscope.files檔案,第三句生成cscope.out資料庫。

v:進入visual模式,使用上下左右對文字進行框選

v+d:visual模式下按d,剪下文字,並回到normal模式

v+y:visual模式下按y,複製文字,並回到normal模式

p:貼上

yy:複製一行

ctrl+o:跳回上乙個游標位置

ctrl+i:跳到下乙個游標位置

ctags

首先需要在根目錄執行ctags -r建立tag檔案,然後在根目錄開啟gvim

ctrl+]:跳轉到函式定義

ctrl+t:返回

cscope

游標移動到要查詢的文字處:

ctrl+\+s:查詢c語言符號,即查詢函式名、巨集、列舉值等出現的地方

ctrl+\+g:查詢函式、巨集、列舉等定義的位置,類似ctags所提供的功能

ctrl+\+c:查詢本函式呼叫的函式

ctrl+\+t:查詢指定的字串

ctrl+\+e:查詢egrep模式,相當於egrep功能

ctrl+\+f:查詢並開啟檔案,類似vim的find功能

ctrl+\+i:查詢包含本檔案的檔案

taglist

f8:開啟taglist視窗,滑鼠雙擊可跳轉到相應函式定義

o:在乙個新開啟的視窗中顯示游標下tag

:顯示游標下tag的原型定義

u: 更新taglist視窗中的tag

s:更改排序方式,在按名字排序和按出現順序排序間切換

x: taglist視窗放大和縮小,方便檢視較長的tag

+: 開啟乙個摺疊,同zo

-:將tag摺疊起來,同zc

*:開啟所有的摺疊,同zr

=:將所有tag摺疊起來,同zm

[[:跳到前乙個檔案

]]:跳到後乙個檔案

q:關閉taglist視窗

:顯示幫助

快速配置ZendFramwork

apache環境是ampserv5.2.6的整合環境 目前使用的是zendframwork1.10 1 建乙個test.com的虛擬目錄 2 開啟 apmserv5.2.6 apache conf apmserv vhost.conf,把test.com的 allowoverride 設為all 3...

快速配置BIND DNS

新裝的centos虛擬機器,先設定下機器名和ip vim etc sysconfig network vim etc sysconfig network scripts ifcfg eth0 yum安裝bind 其他關聯資料的東西就不用裝了,我們直接使用文字檔案 yum install bind b...

Feign 快速配置

org.springframework.cloudgroupid spring cloud starter hystrixartifactid dependency org.springframework.cloudgroupid spring cloud starter hystrix dashb...