set nuset tabstop=4syntax on"set mouse=aset mouse=nic"set mouse=nich"set t_Co=256
set cursorline "將當(dāng)前行顯示高亮,紅底白字 "hi CursorColumn cterm=NONE ctermbg=red ctermfg=white guibg=NONE guifg=NONE"hi CursorLine cterm=NONE ctermbg=black ctermfg=green
"let mapleader=',' "使用,cc和,cu來進(jìn)行注釋和取消注釋操作"set foldmethod=marker"
"代碼折疊"set foldmethod=syntax"set foldmethod=indent"set foldlevel=0 "啟動(dòng)vim時(shí)不自動(dòng)折疊代碼,foldlevel數(shù)值越大折疊越多set foldcolumn=4 "設(shè)置折疊欄寬度
filetype plugin indent onset completeopt=longest,menuset wildmenuautocmd FileType ruby,eruby set omnifunc=rubycomplete#Completeautocmd FileType python set omnifunc=pythoncomplete#Completeautocmd FileType javascript set omnifunc=Javascriptcomplete#CompleteJSautocmd FileType html set omnifunc=htmlcomplete#CompleteTagsautocmd FileType CSS set omnifunc=csscomplete#CompleteCSSautocmd FileType xml set omnifunc=xmlcomplete#CompleteTagsautocmd FileType java set omnifunc=javacomplete#Complet
"常用命令"za 打開/關(guān)閉在光標(biāo)下的折疊"zA 循環(huán)地打開/關(guān)閉光標(biāo)下的折疊"zo 打開 (open) 在光標(biāo)下的折疊"zO 循環(huán)打開 (Open) 光標(biāo)下的折疊"zc 關(guān)閉 (close) 在光標(biāo)下的折疊"zC 循環(huán)關(guān)閉 (Close) 在光標(biāo)下的所有折疊"zM 關(guān)閉所有折疊"zR 打開所有的折疊
"set autoindent"set smartindentset nowrap"colorscheme ron " elflord ron peachpuff default 設(shè)置配色方案,vim自帶的配色方案保存在/usr/share/vim/vim72/colors目錄下set autoindent " 設(shè)置自動(dòng)對(duì)齊(縮進(jìn)):即每行的縮進(jìn)值與上一行相等;使用 noautoindent 取消設(shè)置set cindent " 使用 C/C++ 語言的自動(dòng)縮進(jìn)方式set showmatch " 設(shè)置匹配模式,顯示匹配的括號(hào)set whichwrap=b,s,<,>,[,] " 光標(biāo)從行首和行末時(shí)可以跳到另一行去
imap () ()<Left>imap [] []<Left>imap {} {}<Left>imap "" ""<Left>imap '' ''<Left>
"共享剪貼板 set clipboard+=unnamed
nmap w= :resize +3<CR> "定義w=作為窗口行數(shù)增加快捷鍵 nmap w- :resize -3<CR> "定義w-作為窗口行數(shù)減少快捷鍵nmap w, :vertical resize -3<CR> "定義w,作為窗口寬度減少快捷鍵nmap w. :vertical resize +3<CR> "定義w.作為窗口寬度增加快捷鍵let Tlist_Ctags_Cmd='/usr/bin/ctags'let Tlist_Show_One_File=1let Tlist_Show_One_File=0 "讓taglist可以同時(shí)展示多個(gè)文件的函數(shù)列表let Tlist_File_Fold_Auto_Close=1 "非當(dāng)前文件,函數(shù)列表折疊隱藏let Tlist_Exit_OnlyWindow=1 "當(dāng)taglist是最后一個(gè)分割窗口時(shí),自動(dòng)推出vimlet Tlist_Auto_Open=1let Tlist_PRocess_File_Always=1noremap <F8> :TlistToggle<CR>let &termencoding=&encodingset fileencodings=utf-8,gb2312,gbk,gb18030,ucs-bom,cp936let &titlestring = expand("%:p")if &term == "screen" set t_ts=^[k set t_fs=^[/endifif &term == "screen" || &term == "xterm" set titleendif"set tags+=./tags"set tags=/home/liq10198965/tags"set autochdirnmap <silent> <F1> :WMToggle<cr> "定義F1作為winmanager打開關(guān)閉的快捷鍵let g:AutoOpenWinManager = 0 "默認(rèn)不自動(dòng)打開winmanager
" let g:winManagerWindowLayout = "TagList|FileExplorer" "設(shè)置winManager與Taglist列表重合,目前關(guān)閉"function! AutoLoadCTagsAndCScope() " let max = 10 " let dir = './' " let i = 0 " let break = 0 " while isdirectory(dir) && i < max " if filereadable(dir . 'cscope.out') " execute 'cs add ' . dir . 'cscope.out' " let break = 1 " endif" if filereadable(dir . 'tags') " execute 'set tags =' . dir . 'tags'" let break = 1 " endif" if break == 1 " execute 'lcd ' . dir" break " endif" let dir = dir . '../' " let i = i + 1 " endwhile "endf"nmap <F9> :call AutoLoadCTagsAndCScope()<CR>
""---------- Cscope setting -------------------------"if has("cscope")" set csprg=/usr/bin/cscope " 指定用來執(zhí)行cscope的命令" set csto=0 " 設(shè)置cstag命令查找次序:0先找cscope數(shù)據(jù)庫再找標(biāo)簽文件;1先找標(biāo)簽文件再找cscope數(shù)據(jù)庫" set cst " 同時(shí)搜索cscope數(shù)據(jù)庫和標(biāo)簽文件" set cscopequickfix=s-,c-,d-,i-,t-,e- " 使用QuickFix窗口來顯示cscope查找結(jié)果" set nocsverb" if filereadable("cscope.out") " 若當(dāng)前目錄下存在cscope數(shù)據(jù)庫,添加該數(shù)據(jù)庫到vim" cs add /home/liq10198965/code_121_r2_12_5/cscope.out" cs add /home/liq10198965/CODE/cscope.out "elseif $CSCOPE_DB != "" " 否則只要環(huán)境變量CSCOPE_DB不為空,則添加其指定的數(shù)據(jù)庫到vim " cs add $CSCOPE_DB" endif" set csverb"endif
"cscope搜索設(shè)置,設(shè)置為動(dòng)態(tài)加載,自動(dòng)加載當(dāng)前目錄的cscope.out,如果沒有向上級(jí)目錄搜索,直到找到加載if has("cscope") set csprg=/usr/bin/cscope set csto=0 set cst set cscopequickfix=s-,c-,d-,i-,t-,e- " 使用QuickFix窗口來顯示cscope查找結(jié)果 set csverb set cspc=3 if filereadable("cscope.out") else let cscope_file=findfile("cscope.out", ".;") let cscope_pre=matchstr(cscope_file, ".*/") if !empty(cscope_file) && filereadable(cscope_file) exe "cs add" cscope_file cscope_pre endif endif endif
"map <F4> :cs add ./cscope.out .<CR><CR><CR> :cs reset<CR>"imap <F4> <ESC>:cs add ./cscope.out .<CR><CR><CR> :cs reset<CR>
"將:cs find c等Cscope查找命令映射為<C-_>c等快捷鍵nmap fs :cs find s <C-R>=expand("<cWord>")<CR><CR> :copen<CR><CR>nmap fg :cs find g <C-R>=expand("<cword>")<CR><CR>nmap fd :cs find d <C-R>=expand("<cword>")<CR><CR> :copen<CR><CR>nmap fc :cs find c <C-R>=expand("<cword>")<CR><CR> :copen<CR><CR>nmap ft :cs find t <C-R>=expand("<cword>")<CR><CR> :copen<CR><CR>nmap fe :cs find e <C-R>=expand("<cword>")<CR><CR> :copen<CR><CR>nmap ff :cs find f <C-R>=expand("<cword>")<CR><CR>nmap fi :cs find i <C-R>=expand("<cword>")<CR><CR> :copen<CR><CR>
"s: 查找C語言符號(hào),即查找函數(shù)名、宏、枚舉值等出現(xiàn)的地方(包括頭文件)"g:查找函數(shù)、宏、枚舉等定義的位置,類似ctags所提供的功能(比如有可能只在頭文件處)"d: 查找本函數(shù)調(diào)用的函數(shù)"c: 查找調(diào)用本函數(shù)的函數(shù)"t: 查找指定的字符串"e: 查找egrep模式,相當(dāng)于egrep功能,但查找速度快多了"f: 查找并打開文件,類似vim的find功能"i: 查找包含本文件的文件"其他功能可輸入:help cscope查看
".........................................................................................................".............................目前沒有使用,以后編譯程序時(shí)使用............................................"........................................................................................................."quickfix命令集"通過quickfix命令集,你可在 Vim 內(nèi)編譯程序并直接跳轉(zhuǎn)到出錯(cuò)位置進(jìn)行修正。你可以接著重新編譯并做修正,直到不再出錯(cuò)為止。"在vim配置文件/home/user/.vimrc中加入如下的配置:
"-- QuickFix setting --"" 按下F6,執(zhí)行make clean"map <F6> :make clean<CR><CR><CR>" 按下F7,執(zhí)行make編譯程序,并打開quickfix窗口,顯示編譯信息" map <F7> :make<CR><CR><CR> :copen<CR><CR>" " 按下F8,光標(biāo)移到上一個(gè)錯(cuò)誤所在的行" map <F8> :cp<CR>" " 按下F9,光標(biāo)移到下一個(gè)錯(cuò)誤所在的行" map <F9> :cn<CR>" " 以上的映射是使上面的快捷鍵在插入模式下也能用" imap <F6> <ESC>:make clean<CR><CR><CR>" imap <F7> <ESC>:make<CR><CR><CR> :copen<CR><CR>" imap <F8> <ESC>:cp<CR>" imap <F9> <ESC>:cn<CR>".......................................幫助文檔......................" :help usr_30" :help quickfix" 下面的命令運(yùn)行 "make" (包括你所給出的參數(shù)) 程序并捕捉其運(yùn)行結(jié)果: >" :make {arguments}" 如果編譯時(shí)出現(xiàn)錯(cuò)誤,按" <Enter>,回到vim界面,看不到出錯(cuò)信息了!這時(shí),可以運(yùn)行以下命令" :cw[indow]" 打開quickfix窗口來查看出錯(cuò)信息,它會(huì)自動(dòng)跳到第一處出錯(cuò)的地方。然后,你可以雙擊出錯(cuò)某一條出錯(cuò)信息,vim就會(huì)自動(dòng)跳轉(zhuǎn)到相應(yīng)的出錯(cuò)位置" :cn[ext] 光標(biāo)移到下一個(gè)錯(cuò)誤所在的行" :cp[revious] 光標(biāo)移到上一個(gè)錯(cuò)誤所在的行" :cfirst 到第一處錯(cuò)誤" :clast 到最后一處錯(cuò)誤" :cc 空間不夠時(shí),Vim 會(huì)縮短出錯(cuò)信息。如果你想查看詳細(xì)信息,可以使用此命令" :cl[ist]" 列出所有出錯(cuò)信息的概覽(只有那些含有文件名或行數(shù)的錯(cuò)誤信息會(huì)被顯示,需要查看那些并不含文件名或行數(shù)的信息可用“:cl[ist]!”命令)" """----------------linux終端操作快捷鍵-------------------------------------------------"Ctrl+a:光標(biāo)回到命令行首。 (a:ahead)"Ctrl+e:光標(biāo)回到命令行尾。 (e:end)"Ctrl+b:光標(biāo)向行首移動(dòng)一個(gè)字符。 (b:backwards)"Ctrl+f:光標(biāo)向行尾移動(dòng)一個(gè)字符。 (f:forwards)"Ctrl+w: 刪除光標(biāo)處到行首的單詞。"Ctrl+k:刪除光標(biāo)處到行尾的單詞。"Ctrl+u:刪除整個(gè)命令行文本字符。"Ctrl+h:向行首刪除一個(gè)字符。"Ctrl+d:向行尾刪除一個(gè)字符。"Ctrl+y:粘貼Ctrl+u,Ctrl+k,Ctrl+w刪除的文本。"Ctrl+p: 上一個(gè)使用的歷史命令。 (p:previous)"Ctrl+n:下一個(gè)使用的歷史命令。(n:next )"Ctrl+r:快速檢索歷史命令。(r:retrieve)"Ctrl+t:交換光標(biāo)所在字符和其前的字符。"Ctrl+i:相當(dāng)于Tab鍵"Ctrl+o:相當(dāng)于Ctrl+m"Ctrl+m:相當(dāng)Enter鍵"Ctrl+s: 使終端發(fā)呆,靜止,可以使快速輸出的終端屏幕停下來。"Ctrl+q:退出Ctrl+s引起的發(fā)呆。"Ctrl+z:使正在運(yùn)行在終端的任務(wù),運(yùn)行于后臺(tái)。 (可用fg恢復(fù))"Ctrl+c:中斷終端中正在執(zhí)行的任務(wù)。"Ctrl+d: 在空命令行的情況下可以退出終端。"Ctrl+[:相當(dāng)于Esc鍵""" -----------------------------------vim常用快捷鍵----------------------------------" % 跳轉(zhuǎn)到配對(duì)的括號(hào)去" [[" 跳轉(zhuǎn)到當(dāng)前或者上一代碼塊(函數(shù)定義、類定義等)的開頭去(但要求代碼塊中'{'必須單獨(dú)占一行)" ][" 跳轉(zhuǎn)到當(dāng)前代碼塊(函數(shù)定義、類定義等)的結(jié)尾去(但要求代碼塊中'{'必須單獨(dú)占一行)" ]]" 跳轉(zhuǎn)到下一代碼塊(函數(shù)定義、類定義等)的開頭去(但要求代碼塊中'{'必須單獨(dú)占一行)" [/ 跳到注釋開頭(只對(duì)/* */注釋有效)" ]/ 跳到注釋結(jié)尾(只對(duì)/* */注釋有效)" gD" 跳轉(zhuǎn)到當(dāng)前文件內(nèi)標(biāo)識(shí)符首次出現(xiàn)的位置,可用于跳轉(zhuǎn)到全部變量的定義處;查找局部變量時(shí),要是多個(gè)函數(shù)中定義了該局部變量,使用gD進(jìn)行查找,找到的變量定義可能不是你需要的" gd 跳轉(zhuǎn)到當(dāng)前函數(shù)內(nèi)標(biāo)識(shí)符首次出現(xiàn)的位置,可用于跳轉(zhuǎn)到局部變量的定義處" '' 跳轉(zhuǎn)到光標(biāo)上次??康牡胤? 是兩個(gè)', 而不是一個(gè)"" mx 設(shè)置書簽,x只能是a-z的26個(gè)字母" `x 跳轉(zhuǎn)到書簽處("`"是1左邊的鍵)" > 增加縮進(jìn),"x>"表示增加以下x行的縮進(jìn)" < 減少縮進(jìn),"x<"表示減少以下x行的縮進(jìn)
新聞熱點(diǎn)
疑難解答
圖片精選
網(wǎng)友關(guān)注