1. 程式人生 > >我的.vimrc文件

我的.vimrc文件

我的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文件