vimrc檔案配置的全文收錄(史上最全,附帶中文解釋)
阿新 • • 發佈:2018-12-26
一、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
各位朋友有什麼不懂以及認為有什麼錯誤之處,請在下方留言,謝謝!