Vim配置

Vim配置是裝完Ubuntu后的首要任務,畢竟萌生換系統(tǒng)的強烈意愿也是源自vim,好啦,話不多說,先上我的.vimrc

set nocompatible  "不與vi兼容
filetype plugin indent on "允許插件 適應不同語言縮進
set nobackup "不備份 
set autochdir "自動切換當前目錄

"啟動,語法高亮,配色
winpos 550 200   "窗口位置
set lines=18 columns=80  "窗口大小
set go=  "不要圖形菜單
set laststatus=2   "總是顯示狀態(tài)欄
syntax enable
syntax on
set t_Co=256
set cursorline "高亮光標行
set ruler   "顯示光標位置狀態(tài)欄
set number
set guifont=Ubuntu\ Mono\ 13
colorscheme molokai
set clipboard=unnamed "可以用系統(tǒng)剪貼板
"Tab相關(guān)
set expandtab "制表符擴展為空格
set tabstop=4 "制表符占用空格數(shù)
set softtabstop=4 "將連續(xù)數(shù)量的空格視為一個制表符
set shiftwidth=4 "格式化時制表符占用空格數(shù)
set cindent
set autoindent

"編碼相關(guān)
set encoding=utf-8
set langmenu=zh_CN.UTF-8
language message zh_CN.UTF-8
set fileencodings=ucs-bom,utf-8,cp936,gb18030,big5,euc-jp,euc-kr,latin1

"使用CTRL+[hjkl]在窗口間導航"
map <C-c> <C-W>c
map <C-j> <C-W>j
map <C-k> <C-W>k
map <C-h> <C-W>h
map <C-l> <C-W>l

"使用箭頭導航buffer"
map <right> :bn<cr>
map <left> :bp<cr>
set autowrite "在切換buffer時自動保存當前的文件

""使用ALT+[jk]來移動行內(nèi)容
nmap <M-j> mz:m+<cr>`z
nmap <M-k> mz:m-2<cr>`z
vmap <M-j> :m'>+<cr>`<my`>mzgv`yo`z
vmap <M-k> :m'<-2<cr>`>my`<mzgv`yo`z

"插件

"Taglist
" 按F8按鈕,出現(xiàn)taglist的窗口
nmap <silent> <F8> :TlistToggle<CR><CR>
let Tlist_Show_One_File=0                    " 只顯示當前文件的tags
let Tlist_Exit_OnlyWindow=1                 " 如果Taglist窗口是最后一個窗口則退出Vim
let Tlist_Use_Right_Window=1                 " 在右側(cè)窗口中顯示
let Tlist_File_Fold_Auto_Close=1             " 自動折疊

"visualmark 按mm高亮
"minibufexpl
let g:miniBufExplMapWindowNavVim = 1 "可以用<C-h,j,k,l>切換到上下左右的窗口 
let g:miniBufExplMapCTabSwitchBufs = 1 "<C-Tab>,<C-S-Tab>切換
let g:miniBufExplModSelTarget = 1 

"cscope
if has("cscope")
    set csprg=/usr/bin/cscope
    set cscopetag   " 使支持用 Ctrl+]  和 Ctrl+t 快捷鍵在代碼間跳來跳去
    " check cscope for definition of a symbol before checking ctags:
    set csto=1 " set to 1 if you want the reverse search order.
     if filereadable("cscope.out")
         cs add cscope.out
         " else add the database pointed to by environment variable
     elseif $CSCOPE_DB !=""
         cs add $CSCOPE_DB
    endif
    " show msg when any other cscope db added
    set cscopeverbose
    
    nmap <C-_>s :cs find s <C-R>=expand("<cword>")<CR><CR>
    nmap <C-_>g :cs find g <C-R>=expand("<cword>")<CR><CR>
    nmap <C-_>c :cs find c <C-R>=expand("<cword>")<CR><CR>
    nmap <C-_>t :cs find t <C-R>=expand("<cword>")<CR><CR>
    nmap <C-_>e :cs find e <C-R>=expand("<cword>")<CR><CR>
    nmap <C-_>f :cs find f <C-R>=expand("<cfile>")<CR><CR>
    nmap <C-_>i :cs find i ^<C-R>=expand("<cfile>")<CR>$<CR>
    nmap <C-_>d :cs find d <C-R>=expand("<cword>")<CR><CR>
endif

set cscopequickfix=s-,c-,d-,i-,t-,e-  "使用quickfix來顯示cscope結(jié)果

總體來說,工作伊始,我也沒有安裝很多插件,等以后需要了再安裝更多吧,總結(jié)一下就下述幾個基本的插件

  • ctagstaglist,基本算是vim標配。
  • cscope,比ctags更強大一點的搜索,也算是vim標配。
  • minibufexpl,顯示多個buffer。還有一個github上有人改進版的minibufexpl,我下的就是這個。
  • visualmark,由于vim自帶的書簽沒有高亮,需要自己記憶,這個插件可以高亮書簽。
  • vim自帶的自動補全目前我覺得是不錯的,Ctrl+N,Ctrl+P及Ctrl+X系列。
  • vim自帶的netrw瀏覽目錄也夠用了,我就沒下載NERDTree。詳細一些無插件vim編程技巧可以看陳皓老師的這篇博客。

具體怎么配置網(wǎng)上教程很多,推薦王垠的在Vim下打造IDE。Ubuntu中文也有一些稀奇古怪的Vim插件推薦。


另外,還有幾個很糾結(jié)的問題我在這里提一下。

  1. Ubuntu 14.04 LTS 自帶的是vim-tiny版本,很多功能不太全,比如在插入模式下,上下左右及退格鍵是不能用的,會變成字母。所以需要sudo apt-get install vim,并且在.vimrc要加入set nocompatible
  2. 這樣裝完后是不帶GUI的完整vim,在終端進入vim的話是在終端界面里直接顯示vim,因此會出現(xiàn)一個很嚴重的問題,Alt鍵無法作為映射鍵!因為在gnome-terminal下,按Alt會默認以Esc作為開頭,但是我又特別喜歡將Alt鍵作為組合鍵來做映射,為了解決這個映射問題,我找了很多資料,stackoverflow上有很多類似的問題,但我按照他們的說法改老是不起作用。。
  3. 萬分糾結(jié)之下,我只好退而求其次,選擇安裝Gvim,在Gvim下就沒有Alt鍵的問題了,因為終端里運行Gvim是另起一個窗口了。。
  4. 我剛開始裝的是vim-gnome,然后這樣裝完又有問題,就是運行g(shù)vim老是會有GLib-GObject-WARNING **,強迫癥的我怎么會受得了!于是找到解決辦法,就是卸載vim-gnome,裝vim-gtk。。(大家都是Gvim,差別咋就這么大捏!

好了,最后貼上我的vim配色,molokai!

molokai for gvim
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容