1. 程式人生 > >ubuntu16.04下vim配置與自動補全

ubuntu16.04下vim配置與自動補全

  1. 開啟終端,輸入vim ~/.vimrc 將以下內容儲存

    set nocompatible "去掉有關vim一致性模式,避免以前版本的一些bug和侷限.
    set mouse=a "滑鼠可任意移動
    set number "顯示行號.
    set ruler "顯示當前游標的行列資訊
    syntax on "語法高亮顯示.(這個肯定是要的.)
    set history=50 "設定命令歷史記錄為50條.
    set hls "尋找匹配是高亮度顯示的
    set lbr "不在單詞中間斷行。
    set fo+=mB "開啟斷行模組對亞洲語言支援
    set backspace=indent,eol,start
    set tabstop=4 "設定tab鍵為4個空格.
    set shiftwidth=4 "設定當行之間交錯時使用4個空格
    set whichwrap=b,s,<,>,[,]
    set autoindent "使用自動對起,也就是把當前行的對起格式應用到下一行.
    set smartindent "依據上面的對起格式,智慧的選擇對起方式,對於類似C語言編.
    set showmatch "設定匹配模式,顯示括號配對情況。
    set cin " 開啟 C/C++ 風格的自動縮排。
    set cino=:4g4t4(sus "設定 C/C++ 風格自動縮排的選項
    set vb t_vb= "當vim進行編輯時,如果命令錯誤,會發出一個響聲,該設定去掉響
    set incsearch  "搜尋時在未完全輸入完畢要檢索的文字時就開始檢索。
    filetype on "檢測檔案的型別
    filetype plugin indent on "開啟了Vim的三種智慧:自動識別檔案型別、
    autocmd FileType text setlocal textwidth=78
    autocmd BufReadPost *
       \if line("°\"")>0&&line("°\"")<=line("$")|
       \  exe "normal g`\""|
       \endif
    highlight Search term=reverse ctermbg=4 ctermfg=7
    highlight Normal ctermbg=black ctermfg=white
    highlight Comment ctermfg=Cyan
    set completeopt=longest,menu
    set tags=../tags
    set tags=tags
    
    " 配色
    colorscheme desert
    set background=dark
    
    " Set extra options when running in GUI mode
    if has("gui_running")
     set guioptions-=T
     set guioptions+=e
    	set t_Co=256
     set guitablabel=%M\ %t
    endif
    
    " 新增中文支援
    let &termencoding=&encoding
    set fileencodings=utf-8,gbk,ucs-bom,cp936
    
    "自動補全
    :inoremap ( ()<ESC>i
    :inoremap ) <c-r>=ClosePair(')')<CR>
    :inoremap { {<CR>}<ESC>O
    :inoremap } <c-r>=ClosePair('}')<CR>
    :inoremap [ []<ESC>i
    :inoremap ] <c-r>=ClosePair(']')<CR>
    :inoremap " ""<ESC>i
    :inoremap ' ''<ESC>i
    function! ClosePair(char)
        if getline('.')[col('.') - 1] == a:char
            return "\<Right>"
        else
            return a:char
        endif
    endfunction
    
    " 用空格鍵來開關摺疊
    set foldenable
    set foldmethod=manual
    nnoremap <space> @=((foldclosed(line('.')) < 0) ? 'zc' : 'zo')<CR>
    "if has(“vms”)
    "" set nobackup
    "else
    "" set backup