1. 程式人生 > >vimrc檔案配置的全文收錄(史上最全,附帶中文解釋)

vimrc檔案配置的全文收錄(史上最全,附帶中文解釋)

一、vi與vim的不同
vi類似於windows的記事本,比較適合編輯普通文字,但是用於編寫指令碼程式碼就不太合適了,缺少高亮顯示程式碼、自動縮排等重要功能;而vim類似於windows下的高階編輯器,為了提高開發效率,需要使用vim而不是vi。
因此,首先做如下調整,以便只使用vim作為開發指令碼的功能工具:

[[email protected] ~]# echo 'alias vi=vim' >> /etc/profile
[[email protected] ~]# tail -1 /etc/profile
alias vi=vim
[[email protected]

~]# source /etc/profile
經過上述調整後,當用vi命令時,會自動被vim替代。

二、配置vim的配置檔案及其重要引數介紹
全域性路徑:/etc/vimrc
使用者個人路徑:$HOME/.vimrc
建議:放在使用者個人路徑$HOME/.vimrc下。
三、.vimrc檔案的配置(幾乎涵蓋了所有)

"~/.vimrc
"vim config file
"date 2018-12-26
"Created by bert 
"blog:http://blog.51cto.com/zpf666
"""""""""""""""""""""""""""""""""""
"""=>全域性配置<="""
"""""""""""""""""""""""""""""""""""
"關閉vi相容模式"
set nocompatible

"設定歷史記錄步數"
set history=1000

"開啟相關外掛"
"偵測檔案型別"
filetype on
"載入檔案型別外掛"
filetype plugin on
"為特定檔案型別載入相關縮排檔案"
filetype indent on

"當檔案在外部被修改時,自動更新該檔案"
set autoread

"啟用滑鼠的使用"
set mouse=a
set selection=exclusive
set selectmode=mouse,key

"儲存全域性變數"
set viminfo+=!

"帶有如下符號的單詞不要被換行分割"
set iskeyword+=_,$,@,%,#,-

"通過使用: commands命令,告訴我們檔案的哪一行被改變過"
set report=0

"被分割的視窗間顯示空白,便於閱讀"
set fillchars=vert:\ ,stl:\ ,stlnc:\

"""""""""""""""""""""""""""""""""
"""=>字型和顏色<="""
"""""""""""""""""""""""""""""""""
"自動開啟語法高亮"
syntax enable

"設定字型"
"set guifont=dejaVu\ Sans\ MONO\ 10
set guifont=Courier_New:h10:cANSI

"設定顏色"
"colorscheme desert

"高亮顯示當前行"
set cursorline
hi cursorline guibg=#00ff00
hi CursorColumn guibg=#00ff00

"高亮顯示普通txt檔案(需要txt.vim指令碼)"
au BufRead,BufNewFile *  setfiletype txt

"""""""""""""""""""""""""""""""
"""=>程式碼摺疊功能<="""
"""""""""""""""""""""""""""""""
"啟用摺疊功能"
set foldenable
"set nofen(這個是關閉摺疊功能)"

"設定按照語法方式摺疊(可簡寫set fdm=XX)"
"有6種摺疊方法:
"manual   手工定義摺疊"
"indent   更多的縮排表示更高級別的摺疊"
"expr     用表示式來定義摺疊"
"syntax   用語法高亮來定義摺疊"
"diff     對沒有更改的文字進行摺疊"
"marker   對文中的標誌進行摺疊"
set foldmethod=manual
"set fdl=0(這個是不選用任何摺疊方法)"

"設定摺疊區域的寬度"
"如果不為0,則在螢幕左側顯示一個摺疊標識列
"分別用“-”和“+”來表示開啟和關閉的摺疊
set foldcolumn=0

"設定摺疊層數為3"
setlocal foldlevel=3

"設定為自動關閉摺疊"
set foldclose=all

"用空格鍵來代替zo和zc快捷鍵實現開關摺疊"
"zo O-pen a fold (開啟摺疊)
"zc C-lose a fold (關閉摺疊)
"zf F-old creation (建立摺疊)
"nnoremap <space> @=((foldclosed(line('.')) < 0) ? 'zc' : 'zo')<CR>

"""""""""""""""""""""""""""""""""""
"""=>文書處理<="""
"""""""""""""""""""""""""""""""""""
"使用空格來替換Tab"
set expandtab

"設定所有的Tab和縮排為4個空格"
set tabstop=4

"設定<<和>>命令移動時的寬度為4"
set shiftwidth=4

"使得按退格鍵時可以一次刪除4個空格"
set softtabstop=4
set smarttab

"縮排,自動縮排(繼承前一行的縮排)"
"set autoindent 命令開啟自動縮排,是下面配置的縮寫
"可使用autoindent命令的簡寫,即“:set ai”和“:set noai”
"還可以使用“:set ai sw=4”在一個命令中開啟縮排並設定縮排級別
set ai
set cindent

"智慧縮排"
set si

"自動換行”
set wrap

"設定軟寬度"
set sw=4

"行內替換"
set gdefault

""""""""""""""""""""""""""""""""""
"""=>Vim 介面<="""
""""""""""""""""""""""""""""""""""
"增強模式中的命令列自動完成操作"
set wildmenu

"顯示標尺"
set ruler

"設定命令列的高度"
set cmdheight=1

"顯示行數"
set nu

"不要圖形按鈕"
set go=

"Do not redraw , when running macros.. lazyredraw"
set lz

"使回格鍵(backspace)正常處理indent, eol, start等"
set backspace=eol,start,indent

"允許空格鍵和游標鍵跨越行邊界"
set whichwrap+=<,>,h,l

"設定魔術"
set magic

"關閉遇到錯誤時的聲音提示"
"關閉錯誤資訊響鈴"
set noerrorbells

"關閉使用可視響鈴代替呼叫"
set novisualbell

"高亮顯示匹配的括號([{和}])"
set showmatch

"匹配括號高亮的時間(單位是十分之一秒)"
set mat=2

"游標移動到buffer的頂部和底部時保持3行距離"
set scrolloff=3

"搜尋逐字元高亮"
set hlsearch
set incsearch

"搜尋時不區分大小寫"
"還可以使用簡寫(“:set ic”和“:set noic”)"
set ignorecase

"用淺色高亮顯示當前行"
autocmd InsertLeave * se nocul
autocmd InsertEnter * se cul

"輸入的命令顯示出來,看的清楚"
set showcmd

""""""""""""""""""""""""""""""""""""
"""=>編碼設定<="""
""""""""""""""""""""""""""""""""""""
"設定編碼"
set encoding=utf-8
set fencs=utf-8,ucs-bom,shift-jis,gb18030,gbk,gb2312,cp936

"設定檔案編碼"
set fileencodings=utf-8

"設定終端編碼"
set termencoding=utf-8

"設定語言編碼"
set langmenu=zh_CN.UTF-8
set helplang=cn

"""""""""""""""""""""""""""""
"""=>其他設定<="""
"""""""""""""""""""""""""""""
"開啟新行時使用智慧自動縮排"
set smartindent
set cin
set showmatch

"在處理未儲存或只讀檔案的時候,彈出確認"
set confirm

"隱藏工具欄"
set guioptions-=T

"隱藏選單欄"
set guioptions-=m

"置空錯誤鈴聲的終端程式碼"
set vb t_vb=

"顯示狀態列(預設值為1,表示無法顯示狀態列)"
set laststatus=2

"狀態行顯示的內容"
set statusline=%F%m%r%h%w\ [FORMAT=%{&ff}]\ [TYPE=%Y]\ [POS=%l,%v][%p%%]\ %{strftime(\"%d/%m/%y\ -\ %H:%M\")}

"貼上不換行問題的解決方法"
set pastetoggle=<F9>

"設定背景顏色"
set background=dark

"檔案型別自動檢測,程式碼智慧補全"
set completeopt=longest,preview,menu

"共享剪下板"
set clipboard+=unnamed

"從不備份"
set nobackup
set noswapfile

"自動儲存"
set autowrite

"顯示中文幫助"
if version >= 603
        set helplang=cn
            set encoding=utf-8
endif

"設定高亮相關項"
highlight Search ctermbg=black ctermfg=white guifg=white guibg=black

""""""""""""""""""""""""""""""""
"""=>在shell指令碼開頭自動增加直譯器以及作者等版權資訊<="""
""""""""""""""""""""""""""""""""
"新建.py,.cc,.sh,.javp檔案,自動插入檔案頭"
autocmd BufNewFile *.py,*.cc,*.sh,*.java exec ":call SetTitle()"
"定義函式SetTitle,自動插入檔案頭"
func SetTitle()
    if expand ("%:e") == 'sh'
        call setline(1, "#!/bin/bash")
        call setline(2, "#Author:bert")
        call setline(3, "#Blog:http://blog.51cto.com/zpf666")
        call setline(4, "#Time:".strftime("%F %T"))
        call setline(5, "#Name:".expand("%"))
        call setline(6, "#Version:V1.0")
        call setline(7, "#Description:This is a production script.")
    endif
endfunc

四、說明
讀者朋友可以直接完全複製貼上拿去使用,只需要修改程式碼的開頭和末尾部分的版權資訊就可以使用
五、結束語
我是大表哥,我為自己帶鹽,以後會不定時更新,請支援正版,盜鏈可恥
我的部落格是:http://blog.51cto.com/zpf666
各位朋友有什麼不懂以及認為有什麼錯誤之處,請在下方留言,謝謝!