.vimrc文件
我們已經知道vim的配置文件為vimrc文件,而且知道vimrc文件分為系統vimrc文件和用戶vimrc文件。在通常情況下,我們不進行系統vimrc文件的修改,而是各個用戶針對自己的需求對用戶vimrc文件進行配置。
• vimrc文件的路徑
打開vim並輸入":version"命令,就可以看到關於vimrc的路徑設置規則:
▶ Linux系統
▶ Windows系統
• 用戶vimrc文件
通常在用戶家目錄下會有一個默認的vimrc文件,如果不存在則創建一個名為".vimrc"的普通文本文件即可。
vim常用配置
• 縮進設置
set smarttab " 設置tab符長度為4個空格 set tabstop=4 " 設置換行自動縮進長度為4個空格 set shiftwidth=4 " 設置tab符自動轉換為空格 set expandtab " 設置智能縮進,其他可選縮進方式:autoindent, cindent, indentexpr set smartindent
• 字體設置
" 在Windows系統中為:set guifont=Courier_New:h12:cANSI set guifont=Courier\ New\ 10
• 顯示行號
" 設置顯示行號,關閉行號顯示命令:set nonumber set number
• 配色方案
" 設置配色方案 colorscheme desert
• 折疊設置
▶ 折疊種類
http://man.lupaworld.com/content/manage/vi/doc/fold.html
manual :手工定義折疊。當退出文件編輯時,手工折疊會被遺棄。如果要保存折疊,則使用:mkview命令;恢復折疊,則使用:loadview命令。創建折疊的方法參見下面的折疊操作。
indent :更多縮進表示更高級別的折疊。當打開文本時,vim將自動根據縮進進行文本折疊。具體使用效果圖如下:
expr : 用表達式來定義折疊。這種折疊的規則類似indent折疊,將由表達式計算的值做為折疊級別判定。該折疊方式下,選項foldexpr的值將被計算並作為一行的折疊級別。譬如我們如果想要折疊空行分開的段落,那么我們需要設置選項:
set fdm=expr set foldexpr=getline(v:lnum)=~'^\\s*$'&&getline(v:lnum+1)=~'\\S'?'<1':1
設置完成之后效果圖如下,可以訪問上面鏈接地址進一步了解表達式折疊。
syntax : 用語法高亮來定義折疊。具體使用效果圖如下:
diff : 對沒有改動的文本或靠近改動的文本自動定義折疊,這個方法僅適用於當前窗口設定diff選項來顯示不同之處時才有效。具體使用效果圖如下:
marker : 對文中的標志折疊。當使用這種方式折疊時,需要根據特定的文本標記來標識代碼折疊,系統默認文本標記是{{{和}}}。當設置為marker方式的折疊,打開文本時,vim將自動根據標記折疊。具體使用效果圖如下:
▶ 折疊配置
" 折疊設置
set foldmethod=marker
▶ 折疊操作
• zi : 關閉所有折疊/打開所有折疊。
• zc : 關閉當前打開的折疊。
• zC : 對所在范圍內所有嵌套的折疊點進行折疊。
• zo : 打開當前關閉的折疊。
• zO : 對所在范圍內所有嵌套的折疊點進行展開。
• zm : 關閉當前折疊。
• zM : 關閉所有折疊。
• zr : 打開當前折疊。
• zR : 打開所有折疊。
• [z : 到當前打開的折疊的開始處。
• ]z : 到當前打開的折疊的末尾處。
• zj : 到下一個折疊的開始處。
• zk : 到前一個折疊的末尾處。
• zd : 刪除當前光標下的折疊,僅當foldmethod為manual和marker時有效。
• zD : 對所在范圍內所有嵌套的折疊點進行刪除,僅當foldmethod為manual和marker時有效。
• zE : 刪除所有折疊,僅當foldmethod為manual和marker時有效。
• [n]zfG : 創建從當前行到第n行之間的代碼折疊。
• [n]zf[Enter] or [n]zf+ or [n]zf↓ : 創建從當前行開始到后n行之間的代碼折疊。
• [n]zf- or [n]zf↑ : 創建從當前行開始到前n行之間的代碼折疊。
• zf% : 在括號處創建到對應匹配的括號的折疊。
• 備份文件
" 如果想關閉備份文件,使用:set nobackup set backup set backupext=.bak
• 空白符顯示
" 設置顯示空白符 set list set listchars=tab:\>\ ,trail:. " 設置行尾空格高亮顯示 highlight WhitespaceEOL ctermbg=red guibg=red match WhitespaceEOL /\s\+$/