我的.vimrc文件
阿新 • • 發佈:2017-09-13
我的vimrc文件
colorscheme murphy " 設置配色方案 set nocompatible " 關閉 vi 兼容模式 syntax on " 開啟語法高亮 set nu " 顯示行號 set cursorline " 突出顯示當前行 set ruler " 打開狀態欄標尺 set shiftwidth=4 " 設定 << 和 >> 命令移動時的寬度為 4 set softtabstop=4 " 使得按退格鍵時可以一次刪掉 4 個空格 set tabstop=4 " 設定 tab 長度為 4 set nobackup " 覆蓋文件時不備份 filetype plugin indent on " 開啟插件 set backupcopy=yes " 設置備份時的行為為覆蓋 set ignorecase smartcase " 搜索時忽略大小寫,但在有一個或以上大寫字母時仍保持對大小寫敏感 set nowrapscan " 禁止在搜索到文件兩端時重新搜索 set incsearch " 輸入搜索內容時就顯示搜索結果 set hlsearch " 搜索時高亮顯示被找到的文本 set noerrorbells " 關閉錯誤信息響鈴 set novisualbell " 關閉使用可視響鈴代替呼叫 set t_vb= " 置空錯誤鈴聲的終端代碼 set magic " 設置魔術 set hidden " 允許在有未保存的修改時切換緩沖區,此時的修改由 vim 負責保存 set guioptions-=T " 隱藏工具欄 set guioptions-=m " 隱藏菜單欄 set smartindent " 開啟新行時使用智能自動縮進 set backspace=indent,eol,start " 不設定在插入狀態無法用退格鍵和 Delete 鍵刪除回車符 set cmdheight=1 " 設定命令行的行數為 1 set laststatus=2 " 顯示狀態欄 (默認值為 1, 無法顯示狀態欄) set statusline=\ %<%F[%1*%M%*%n%R%H]%=\ %y\ %0(%{&fileformat}\ %{&encoding}\ %c:%l/%L%)\ " 設置在狀態行顯示的信息 set helplang=cn "顯示中文幫助 "新建.c,.h,.sh,.java文件,自動插入文件頭 autocmd BufNewFile *.sh,*.py call SetTitle() """定義函數SetTitle,自動插入文件頭 func SetTitle() "如果文件類型為.sh文件 if &filetype == ‘sh‘ call setline(1,"\#!/bin/bash") call append(line("."),"\#########################################################################") call append(line(".")+1, "\# File Name: ".expand("%")) call append(line(".")+2, "\# Author: huxianyong") call append(line(".")+3, "\# mail: [email protected]") call append(line(".")+4, "\# Created Time: ".strftime("%y-%m-%d %A %H:%M:%S")) call append(line(".")+5, "\#########################################################################") normal G "G 就是到文件最後一行和vim裏面的G一樣 normal o "o 就是相當於一個回車 normal o else call setline(1,"\#!/usr/bin/python") call append(line("."), "\# -*- coding: utf8 -*- ") call append(line(".")+1, "\#*************************************************************************") call append(line(".")+2, "\# File Name: ".expand("%")) call append(line(".")+3, "\# Author: huxianyong") call append(line(".")+4, "\# Mail: [email protected] ") call append(line(".")+5, "\# Created Time: ".strftime("%c")) call append(line(".")+6, "\#************************************************************************") normal G normal o normal o endif "新建文件後,自動定位到文件末尾 autocmd BufNewFile * normal G endfunc "設置編碼格式,字符編碼 set fencs=utf-8,ucs-bom,shift-jis,gb18030,gbk,gb2312,cp936 set termencoding=utf-8 set encoding=utf-8 set guifont=Courier_New:h10:cANSI " 設置字體 syntax on " 語法高亮 autocmd InsertLeave * se nocul " 用淺色高亮當前行 set pastetoggle=<F3> "F3 不縮進 set completeopt=preview,menu "自動補全 :inoremap ( ()<ESC>i :inoremap ) <c-r>=ClosePair(‘)‘)<CR> :inoremap { {}<ESC>i :inoremap } <c-r>=ClosePair(‘}‘)<CR> :inoremap [ []<ESC>i :inoremap ] <c-r>=ClosePair(‘]‘)<CR> :inoremap " ""<ESC>i ":inoremap " <c-r>=ClosePair(‘"‘)<CR> :inoremap ‘ ‘‘<ESC>i :inoremap ‘ <c-r>=ClosePair(‘\‘‘)<CR> :inoremap < <><ESC>i :inoremap > <c-r>=ClosePair(‘>‘)<CR> function! ClosePair(char) if getline(‘.‘)[col(‘.‘) - 1] == a:char return "\<Right>" else return a:char endif endfunction filetype plugin indent on "打開文件類型檢測, 加了這句才可以用智能補全 set completeopt=longest,menu
這裏的自動補全只限於使用ctrl+n的時候補全上面已出現的單詞,而不是補全沒出現過的單詞.
值得註意的是,這裏的自動補全裏的符號成對補全出現
如果輸入了( { ‘"就會出現(){}‘‘""
但是如果我們的 :inoremap ( ()<ESC>i空格 這樣輸入(就會變成了( )而不是 ()這樣了 如果 :inoremap ) <c-r>=ClosePair(‘)‘)<CR>空格 這樣輸入)就會變成了)空格 其他的符號是一樣的,我在vim編輯的時候出現這個問題,找了老半天才發現是這裏的問題
這裏的<ESC> 就是退出編輯模式,i就是進入編輯模式{<CR>}就是換行, ClosePair就是結束配對 這裏的雙引號沒法用,我也不知道為什麽!
本文出自 “Forand” 博客,請務必保留此出處http://853056088.blog.51cto.com/12966870/1964928
我的.vimrc文件