1. 程式人生 > >Vim基礎配置

Vim基礎配置

history nth 粘貼 end linux sof 折疊 err euc

Vim雖然網上有著各種各樣的Vim插件配置

但是那對於我來說根本是不必要的,在經歷了各種配置體驗以後,總體上說Vim如果插件越多越卡。而且在以後的開發過程中,如果換了服務器以後,每次都要折騰配置,真心很不方便,Vim插件管理很亂,我也沒有時間去學所謂的VimScript,如果一個編輯器的學習成本這麽高,已經偏離了我學編程的主要目的了。

以下配置一下主要的樣式,不進行插件配置

"===============================================================================
" General Settings 基礎設置
"=============================================================================== set history=2000 "history存儲容量 filetype on "開啟文件類型偵測 filetype indent on "自適應不同語言的智能縮進 filetype plugin on "允許插件
filetype plugin indent on "啟動自動補全 set nocompatible "關閉兼容模式 set autoread "文件修改之後自動載入 set shortmess=atI "啟動的時候不顯示那個援助烏幹達兒童的提示 set nobackup "取消備份。 視情況自己改 set noswapfile "關閉交換文件
" 備份,到另一個位置. 防止誤刪, 目前是取消備份 "set backup "set backupext=.bak "set backupdir=/tmp/vimbk/ set wildignore=*.swp,*.bak,*.pyc,*.class,.svn " 設置 退出vim後,內容顯示在終端屏幕, 可以用於查看和復制, 不需要可以去掉 " 好處:誤刪什麽的,如果以前屏幕打開,可以找回 set t_ti= t_te= " 鼠標暫不啟用, 鍵盤黨.... " set mouse-=a " 啟用鼠標 set mouse=a " Hide the mouse cursor while typing " set mousehide "=============================================================================== " Display Settings 展示格式設置 "=============================================================================== " 防止tmux下vim的背景色顯示異常 " Refer: http://sunaku.github.io/vim-256color-bce.html if &term =~ '256color' " disable Background Color Erase (BCE) so that color schemes " render properly when inside 256-color tmux and GNU screen. " see also http://snk.tuxfamily.org/log/vim-256color-bce.html set t_ut= endif set ruler "顯示光標當前位置 set showcmd "在狀態欄顯示正在輸入的命令 set showmode "左下角顯示當前vim模式 set scrolloff=7 "在上下移動光標時,光標的上方或下方至少會保留顯示的行數 set number "開啟行號顯示 set gcr=a:block-blinkon0 "禁止光標閃爍 set laststatus=2 "總是顯示狀態欄 set guioptions-=l "禁止顯示滾動條 set guioptions-=L set guioptions-=r set guioptions-=R set guioptions-=m "禁止顯示菜單和工具條 set guioptions-=T set cursorline "高亮顯示當前行/列 " set cursorcolumn if (exists('+colorcolumn')) "高亮第80列 set colorcolumn=80 highlight ColorColumn ctermbg=9 endif "=============================================================================== " 排版格式設置 "=============================================================================== """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" """"""""""""""""""""""""""""""""搜索括號匹配問題"""""""""""""""""""""""""""""""""" """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" set showmatch "括號配對情況, 跳轉並高亮一下匹配的括號 " How many tenths of a second to blink when matching brackets set matchtime=2 set incsearch "開啟實時搜索功能 set ignorecase "搜索時大小寫不敏感 set smartcase "有一個或以上大寫字母時仍大小寫敏感 set hlsearch "高亮顯示搜索結果 set wildmenu "vim 自身命令行模式智能補全 """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" """"""""""""""""""""""""""""""""代碼顯示排版問題""""""""""""""""""""""""""""""""" """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" syntax enable "開啟語法高亮功能 syntax on "允許用指定語法高亮配色方案替換默認方案 set smartindent "智能縮進 set autoindent "自動縮進 set shiftround "縮進時,取整 set expandtab "將制表符擴展為空格 set tabstop=4 "設置編輯時制表符占用空格數 set shiftwidth=4 "設置格式化時制表符占用空格數 set softtabstop=4 "讓 vim 把連續數量的空格視為一個制表符 set smarttab "設置該項後就可以刪除一個tab了 set nowrap "禁止折行 set backspace=indent,eol,start "退格鍵問題 set formatoptions+=m "如遇Unicode值大於255的文本,不必等到空格再折行 set formatoptions+=B "合並兩行中文時,不在中間加空格 """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" """"""""""""""""""""""""""""""""代碼折疊""""""""""""""""""""""""""""""""""""""""" """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" set foldenable " 折疊方法 " manual 手工折疊 " indent 使用縮進表示折疊 " expr 使用表達式定義折疊 " syntax 使用語法定義折疊 " diff 對沒有更改的文本進行折疊 " marker 使用標記進行折疊, 默認標記是 {{{ 和 }}} set foldmethod=indent set foldlevel=99 " 代碼折疊自定義快捷鍵 <leader>zz let g:FoldMethod = 0 map <leader>zz :call ToggleFold()<cr> fun! ToggleFold() if g:FoldMethod == 0 exe "normal! zM" let g:FoldMethod = 1 else exe "normal! zR" let g:FoldMethod = 0 endif endfun set nofoldenable "啟動 vim 時關閉折疊代碼 """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" """""""""""""""""""""""""""""""""粘貼問題"""""""""""""""""""""""""""""""""""""""" """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" set pastetoggle=<F11> "設置按下F11時進入paste模式 """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" """""""""""""""""""""""""""""""""編碼問題"""""""""""""""""""""""""""""""""""""""" """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" 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 set ambiwidth=double "防止特殊符號無法正常顯示 set helplang=cn " Use Unix as the standard file type set ffs=unix,dos,mac "=============================================================================== " others 其它設置 "=============================================================================== autocmd! bufwritepost _vimrc source % "vimrc文件修改之後自動加載, windows autocmd! bufwritepost .vimrc source % "vimrc文件修改之後自動加載, linux " 自動補全配置 set completeopt=longest,menu "讓Vim的補全菜單行為與一般IDE一致(參考VimTip1228) set wildmenu "增強模式中的命令行自動完成操作 set wildignore=*.o,*~,*.pyc,*.class "Ignore compiled files " 離開插入模式後自動關閉預覽窗口 autocmd InsertLeave * if pumvisible() == 0|pclose|endif " 回車即選中當前項 inoremap <expr> <CR> pumvisible() ? "\<C-y>" : "\<CR>" " In the quickfix window, <CR> is used to jump to the error under the " cursor, so undefine the mapping there. autocmd BufReadPost quickfix nnoremap <buffer> <CR> <CR> " quickfix window s/v to open in split window, ,gd/,jd => quickfix window => open it autocmd BufReadPost quickfix nnoremap <buffer> v <C-w><Enter><C-w>L autocmd BufReadPost quickfix nnoremap <buffer> s <C-w><Enter><C-w>K " command-line window autocmd CmdwinEnter * nnoremap <buffer> <CR> <CR> " 上下左右鍵的行為 會顯示其他信息 inoremap <expr> <Down> pumvisible() ? "\<C-n>" : "\<Down>" inoremap <expr> <Up> pumvisible() ? "\<C-p>" : "\<Up>" inoremap <expr> <PageDown> pumvisible() ? "\<PageDown>\<C-p>\<C-n>" : "\<PageDown>" inoremap <expr> <PageUp> pumvisible() ? "\<PageUp>\<C-p>\<C-n>" : "\<PageUp>" " 打開自動定位到最後編輯的位置, 需要確認 .viminfo 當前用戶可寫 if has("autocmd") au BufReadPost * if line("'\"") > 1 && line("'\"") <= line("$") | exe "normal! g'\"" | endif endif """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" """""""""""""""""""""""""""""""""""高亮方案設置"""""""""""""""""""""""""""""""""" """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" highlight LineNr cterm=bold ctermfg=red highlight StorageClass cterm=bold ctermfg=darkgreen highlight Type cterm=bold ctermfg=blue highlight LineNr cterm=bold ctermbg=black highlight phpStructure cterm=bold ctermfg=darkred highlight phpFunctions cterm=bold ctermfg=256 highlight Title ctermfg=blue highlight pythonString cterm=bold ctermfg=gray highlight pythonFunction cterm=bold highlight pythonInclude cterm=bold ctermfg=lightblue highlight javaScriptStringS ctermfg=gray highlight String ctermfg=gray hi Search cterm=NONE ctermfg=darkred ctermbg=yellow cterm=reverse

Vim基礎配置