非常抱歉,這是我12年的配置了,曾經在開源中國社區分享過,後面也在不斷更新和修改。比較適合前端工程師使用。
vim的配置如下:
set nocompatible
syntax enable " 開啟文法高亮
syntax on " 開啟檔案類型偵測
filetype indent on " 針對不同的檔案類型採用不同的縮排格式;indent on就是按indent目錄下指令碼自動縮排
filetype plugin off " 針對不同的檔案類型載入對應的外掛程式;plugin on就是允許執行 ftplugin目錄下的檔案類型特定的指令碼。
set rtp+=~/.vim/bundle/vundle/
call vundle#rc()
Bundle 'maksimr/vim-jsbeautify'
"filetype plugin indent on "合并寫法
set tabstop=4 " 設定tab鍵的寬度
set shiftwidth=4 " 換行時行間交錯使用4個空格
set autoindent " 自動對齊
set backspace=2 " 設定退格鍵可用
set cindent shiftwidth=4 " 自動縮排4空格
set smartindent " 智能自動縮排
set ai! " 設定自動縮排
set nu! " 顯示行號
set showmatch " 顯示括弧配對情況
set matchtime=5 " 匹配括弧高亮的時間(單位是十分之一秒)
set mouse=a " 啟用滑鼠
set ruler " 右下角顯示光線標位置的狀態行
set incsearch " 尋找book時,當輸入/b時會自動找到
set hlsearch " 開啟高亮顯示結果
set incsearch " 開啟即時搜尋功能
set nowrapscan " 搜尋到檔案兩端時不重新搜尋
map nh :noh<cr>
set nocompatible " 關閉相容模式
set vb t_vb= " 關閉提示音
set cursorline " 反白當前行
set hidden " 允許在有未儲存的修改時切換緩衝區
set list
set lcs=tab:\|\
hi SpecialKey guifg=#0087AF
set history=1000 " 記錄數
set ignorecase "搜尋忽略大小寫
" 自動插入匹配括弧
"inoremap ( ()<LEFT>
"inoremap [ []<LEFT>
"inoremap { {}<LEFT>
"inoremap < <><LEFT>
"inoremap " ""<LEFT>
"inoremap ' ''<LEFT>
"set nowrap " 設定不自動換行
set wrap " 設定自動換行
map nw :set nowrap<CR>
set writebackup " 設定無備份檔案
set nobackup
set directory=.,$TEMP "解決“無法開啟未命名分頁檔,恢複將不可能”錯誤
"set autochdir " 設定檔案瀏覽器目錄為目前的目錄
"set foldenable " 開始摺疊
"set foldmethod=indent " 設定文法摺疊;za/zo/zO摺疊和展開
"set foldcolumn=0 " 設定摺疊地區的寬度
"setlocal foldlevel=1 " 設定摺疊層數為
"set foldlevelstart=99 " 開啟檔案是預設不摺疊代碼
"set foldclose=all " 設定為自動關閉摺疊
"nnoremap <space> @=((foldclosed(line('.')) < 0) ? 'zc' : 'zo')<CR> " 用空格鍵來開關摺疊
set laststatus=2 " 開啟狀態列資訊
set cmdheight=1 " 命令列的高度,預設為1,這裡可以重設
set statusline=%F%m%r%h%w\ [FORMAT=%{&ff}]\ [TYPE=%Y]\ [POS=%l,%v][%p%%]\ %y%r%m%*%=\ %{strftime(\"%y/%m/%d\ -\ %H:%M\")} " 狀態行顯示的內容 [包括系統平台、檔案類型、座標、所佔比例、時間等
set shm+=I "去掉啟動畫面
map JJ <Esc>
imap jj <Esc>
autocmd BufEnter * cd %:p:h "自動將 Vim 工作目錄遷移到所開啟文字檔的目錄下
map tt :tabnew<CR> "tt建立標籤;
map tn :tabn<CR>
map tp :tabp<CR>
"map <A-Left> :tabp<CR> "切換標籤頁;使用Alt+←切換
"map <A-Right> :tabn<CR> "切換標籤頁;使用Alt+→切換
"map <Tab> :tabn<CR> "使用tab切換標籤頁
map cc :tabc<CR> "按cc關閉當前標籤
map <S-C> :tabc<CR> "按Shift+c關閉當前標籤
map to :tabo<CR> "關閉其他標籤
set showtabline=1 "設定標籤欄的顯示,0永遠不顯示 1兩個以上顯示 2 永遠顯示
map ft :set ft=html<CR>
nmap <S-L> dd "提高用dd命令刪除行的效能
nmap kil :g/^\s*$/d<CR>
"標籤頁欄中去除當前所編輯檔案的路徑資訊,只保留檔案名稱
function ShortTabLabel ()
let bufnrlist = tabpagebuflist (v:lnum)
let label = bufname (bufnrlist[tabpagewinnr (v:lnum) -1])
let filename = fnamemodify (label, ':t')
return filename
endfunction
set guitablabel=%{ShortTabLabel()}
""""""""""""""""""""
""""""外掛程式類""""""""
""""""""""""""""""""
"###MRU###
nmap mr :MRU<CR> "開啟最近開啟檔案
"###NERDTree###
let NERDTreeWinPos ="left" "將NERDTree的視窗設定在gvim視窗的左邊
let NERDTreeShowBookmarks=1 "當開啟NERDTree視窗時,自動顯示Bookmarks
"let NERDTreeMinimalUI=1 "不顯示協助面板
let NERDTreeChDirMode=2 "選中root即設定為目前的目錄
let NERDTreeCaseSensitiveSort=0 "不分大小寫排序
let NERDTreeQuitOnOpen=0 "開啟檔案後, 關閉NERDTrre視窗
let NERDTreeHighlightCursorline=1 "高亮NERDTrre視窗的當前行
let NERDTreeIgnore=['\.zip$','\~$','\.png$','\.gif$','\.jpg$','\.bak$','\.html$','\.rar$','\.swp$'] "不顯示指定的類型的檔案
"let NERDTreeIgnore += ['\(\.txt\)\@<!$[[file]]'] "只顯示txt檔案
map ` :NERDTreeToggle<CR>
map ne :NERDTreeToggle<cr>
""open a NERDTree automatically when vim starts up
"autocmd vimenter * NERDTree
"" open a NERDTree automatically when vim starts up if no files were specified
"autocmd vimenter * if !argc() | NERDTree | endif
"close vim if the only window left open is a NERDTree
autocmd bufenter * if (winnr("$") == 1 && exists("b:NERDTreeType") && b:NERDTreeType == "primary") | q | endif
"###session###
let g:session_autosave = 'yes'
let g:session_autoload = 'yes'
"###WinResizer###
"let g:winresizer_enable = 0
map <S-E> :WinResizerStartResize<CR>
map rs :WinResizerStartResize<CR>
"定製ZenCoding,用Ctrl+e替換ctrl+y+展開運算式
let g:user_emmet_install_global = 0
autocmd FileType html,css EmmetInstall
let g:user_emmet_expandabbr_key = '<c-e>'
let g:user_zen_settings = {
\ 'php' : {
\ 'extends' : 'html',
\ 'filters' : 'c',
\ },
\ 'xml' : {
\ 'extends' : 'html',
\ },
\ 'html' : {
\ 'extends' : 'html',
\ },
\}
let g:use_zen_complete_tag = 1
map <C-S-R> :FufFileRecursive<CR>
"###auto_save
let g:auto_save = 0 " enable AutoSave on Vim startup
"let g:auto_save_no_updatetime = 1 " do not change the 'updatetime' option
"JsBeautify
map :call JsBeautify()
" or
autocmd FileType javascript noremap :call JsBeautify()
" for html
autocmd FileType html noremap :call HtmlBeautify()
" for css or scss
autocmd FileType css noremap :call CSSBeautify()