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

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

更新 普通 鈴聲 echo rec expand 開發 空格 缺少

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

[root@dabiaoge ~]# echo ‘alias vi=vim‘ >> /etc/profile
[root@dabiaoge ~]# tail -1 /etc/profile
alias vi=vim
[root@dabiaoge ~]# 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=

"在執行宏命令時,不進行顯示重繪;在宏命令執行完成後,一次性重繪,以便提高性能"
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
各位朋友有什麽不懂以及認為有什麽錯誤之處,請在下方留言,謝謝!

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