Vim基礎配置
阿新 • • 發佈:2017-11-30
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基礎配置