個人愛好vim使用配置

2021-05-23 14:27:40 字數 4865 閱讀 3066

1年不用,都記得差不多了。再拿起來,呵呵......

ubuntu 10.04系統

安裝外掛程式(用vim-addons命令安裝):

一、bufexplorer:快捷鍵為/be(只有乙個buffer的時候不會出現)

二、taglist:命令是,tlist開啟,tlistclose關閉

三、alternate:也是a.vim,標頭檔案和實現檔案切換.快捷健a

四、cscope使用:

新增cscope_maps.vim外掛程式

先在~/vimrc中增加一句:

:set cscopequickfix=s-,c-,d-,i-,t-,e-

這個是設定是否使用 quickfix 視窗來顯示 cscope 結果。

$ cd /home/wooin/vim71/

$ cscope -rbq

# 此後會生成三個檔案

$ ll cscope.*

-rw-rw-r-- 1 wooin wooin 1.1m 2007-09-30 10:56 cscope.in.out

-rw-rw-r-- 1 wooin wooin 6.7m 2007-09-30 10:56 cscope.out

-rw-rw-r-- 1 wooin wooin 5.1m 2007-09-30 10:56 cscope.po.out

# 開啟檔案, 開始coding

$ cd src

$ vi main.c

進入vim後第一件事是要把剛才生成的cscope檔案匯入到vim中來, 用下面的命令:

:cs add /home/wooin/vim71/cscope.out /home/wooin/vim71

上面這條命令很重要, 必須寫全, 不能只寫前半句:

:cs add /home/wooin/vim71/cscope.out

因為原始碼是多級目錄的, 如果這樣寫, cscope是無法在子目錄中的原始碼中工作的, 當然, 如果你的原始碼都

在同一級目錄中就無所謂了. 如果你要經常用cscope的話, 可以把上面那句加到~/.vimrc中去

cscope的主要功能是通過同的子命令"find"來實現的

"cscope find"的用法:

cs find c|d|e|f|g|i|s|t name

0 或 s     查詢本 c 符號(可以跳過注釋)

1 或 g     查詢本定義

2 或 d     查詢本函式呼叫的函式

3 或 c     查詢呼叫本函式的函式

4 或 t     查詢本字串

6 或 e     查詢本 egrep 模式

7 或 f     查詢本檔案

8 或 i     查詢包含本檔案的檔案

如果每次查詢都要輸入一長串命令的話還真是件討人厭的事情, cscope的幫助手冊中推薦了一些快捷鍵的用法, 下面是其中一組, 也是我用的, 將下面的內容新增到~/.vimrc中, 並重啟vim:

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("")<

set cst "和tags一起用

set cscopequickfix=s-,c-,d-,i-,t-,e-

五、ctags使用:

$ cd /home/wooin/vim71

$ ctags -r

此時在/home/wooin/vim71目錄下會生成乙個 tags 檔案, 現在用vim開啟 /home/wooin/vim71/src/main.c

$ vim /home/wooin/vim71/src/main.c

再在vim中執行命令:

:set tags=/home/wooin/vim71/tags

該命令將tags檔案加入到vim中來, 你也可以將這句話放到~/.vimrc中去, 如果你經常在這個工程程式設計的話.

按下, 游標會自動跳到游標所在函式的定義處,如果此時你還想再跳回剛才的位置, 你還可以按, 這樣又跳回了。

* :tag 關鍵字(跳轉到與「關鍵字」匹配的標記處)

* :tselect [關鍵字](顯示與「關鍵字」匹配的標記列表,輸入數字跳轉到指定的標記)

* :tjump [關鍵字](類似於「:tselect」,但當匹配項只有乙個時直接跳轉至標記處而不再顯示列表)

* :tn(跳轉到下乙個匹配的標記處)

* :tp(跳轉到上乙個匹配的標記處)

* ctrl-](跳轉到與游標下的關鍵字匹配的標記處;除「關鍵字」直接從游標位置自動獲得外,功能與「:tags」相同)

* g](與「ctrl-]」功能類似,但使用的命令是「:tselect」)

* g ctrl-](與「ctrl-]」功能類似,但使用的命令是「:tjump」)

* ctrl-t(跳轉回上次使用以上命令跳轉前的位置)

六、omnicppcomplete使用

七、lookupfile使用(需要genutils)

專案檔案查詢:按」「或輸入」:lookupfile「

緩衝區查詢:」:lubufs「命令開始在緩衝區中查詢

瀏覽目錄:使用」:luwalk「開啟lookupfile視窗後

八、配置檔案

"""""""""""""""""""""""

" xunchen's vimrc

"""""""""""""""""""""""

set nocompatible "不要vim模仿vi模式,否則會有很多不相容的問題

set noedcompatible "去掉輸入錯誤提示聲音

syntax on "語法高亮顯示

filetype on "開啟檔案型別自動檢測

filetype plugin on "開啟外掛程式型別自動檢測

set number "顯示行號

set nobackup "不新增備份檔案

set autoread "當檔案外部修改時,自動重新讀取

set tabstop=4 "tab鍵的寬度

"統一縮排為4

set softtabstop=4

set shiftwidth=4

set autoindent "自動縮排

set cindent "支援c/c++縮排

" for cscope

set cst "和tags一起用

set cscopequickfix=s-,c-,d-,i-,t-,e-

" for taglist plugin

let tlist_ctags_cmd = 'ctags'

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

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

let tlist_use_right_window = 1 "在右側視窗中顯示taglist視窗

" for lookupfile

if filereadable("./filenametags")                "設定tag檔案的名字

let lookupfile_tagexpr = '"./filenametags"'

endif

let lookupfile_minpatlength = 2               "最少輸入2個字元才開始查詢

let lookupfile_preservelastpattern = 0        "不儲存上次查詢的字串

let lookupfile_preservepatternhistory = 1     "儲存查詢歷史

let lookupfile_alwaysacceptfirst = 1          "回車開啟第乙個匹配專案

let lookupfile_allownewfiles = 0              "不允許建立不存在的檔案

" 生成c/c++ tags cscope

map :call build_tagfile()

function build_tagfile()

if has("cscope")

silent! execute "cs kill -1"

endif

if(executable('ctags'))

silent! execute "!ctags -r --c-types=+p --fields=+s *"

silent! execute "!ctags -r --c++-kinds=+p --fields=+ias --extra=+q ."

execute "set tags+=tags"

endif

if(executable('cscope') && has("cscope"))

silent! execute "!find . -name '*.h' -o -name '*.c' -o -name '*.cpp' > cscope.files"

silent! execute "!cscope -rbq"

execute "normal :"

if filereadable("cscope.out")

execute "cs add cscope.out"

endif

endif

silent! execute "!~/.vim/loookupfile.sh"

endfunction

vim個人極簡配置

用途 用vim進行c語言程式設計學習資料結構 用的mac自帶vim cd touch vimrc set number 顯示行號 set cursorline 突出當前行 set cindent c語言縮排風格 set smartindent 自動縮排 set tabstop 4 tab顯示寬度 建...

vim 配置與使用

一般情況下,配置 vimrc 可以更改vim 的表現。有很多已經寫的很好的 vimrc 例如 讓cygwin shell使用英文介面只用在 bashrc這個檔案裡面加上一句話 export lang en us quickfix的使用 對大多數使用makefile的專案來說,vim的預設設定 mak...

Vim配置 Vim中使用滑鼠功能

最近在使用vim,忽然發現vim也能使用滑鼠,本章主要說明如何使用滑鼠功能。set mouse a set mouse a mouse 的引數說明 n 普通模式 v 可視模式 i 插入模式 c 命令列模式 h 在幫助檔案裡,以上所有模式 a 以上所有模式 r 跳過 lit enter 提示 a 在可...