誰(shuí)說(shuō)Vim不是IDE?(二)
環(huán)境配置
“如果你認(rèn)為Vim只是一個(gè)文本編輯器,你就輸了”——來(lái)自Vim老鳥
Vim以簡(jiǎn)潔的方式提供了豐富的配置功能,主要配置體系由一個(gè)文件和文件夾組成。在一臺(tái)安裝了Vim的OS X/Linux/Unix機(jī)器上,進(jìn)入用戶主目錄,可以找到.vimrc文件和.vim文件夾,這就是Vim所有的配置信息。
(1).vimrc介紹
用戶目錄下的.vimrc文件就是Vim針對(duì)當(dāng)前用戶的主配置文件,該文件不是必備的,沒有的話就創(chuàng)建它。文件位于當(dāng)前用戶的主目錄下,可以用~/.vimrc找到,Vim啟動(dòng)時(shí)會(huì)自動(dòng)運(yùn)行文件中的每條命令。
通過.vimrc我們可以為Vim進(jìn)行個(gè)性化配置,包括使用方式、顯示風(fēng)格、編寫函數(shù)和運(yùn)行插件等,.vimrc中所有的命令都可以在Vim運(yùn)行時(shí)通過類似:comm args[=args1]的方式動(dòng)態(tài)運(yùn)行,即時(shí)生效。
以下是一個(gè).vimrc的樣例腳本,包含了一些常用配置,后面的注釋是簡(jiǎn)要說(shuō)明。
.vimrc的注釋用雙引號(hào)(")表示 ,樣例中的大括號(hào)僅表示功能區(qū),屬于注釋的一部分,無(wú)其他含義
.vimrc的配置非常豐富,可以定義各種宏、函數(shù)、插件和映射,我見過最長(zhǎng)的.vimrc配置有1000多行,這里的示例比較簡(jiǎn)單,適合入門級(jí)用戶
syn on "語(yǔ)法支持 "common conf {{ 通用配置 set ai "自動(dòng)縮進(jìn) set bs=2 "在insert模式下用退格鍵刪除 set showmatch "代碼匹配 set laststatus=2 "總是顯示狀態(tài)行 set expandtab "以下三個(gè)配置配合使用,設(shè)置tab和縮進(jìn)空格數(shù) set shiftwidth=4 set tabstop=4 set cursorline "為光標(biāo)所在行加下劃線 set number "顯示行號(hào) set autoread "文件在Vim之外修改過,自動(dòng)重新讀入 set ignorecase "檢索時(shí)忽略大小寫 set fileencodings=uft-8,gbk "使用utf-8或gbk打開文件 set hls "檢索時(shí)高亮顯示匹配項(xiàng) set helplang=cn "幫助系統(tǒng)設(shè)置為中文 set foldmethod=syntax "代碼折疊 "}} "conf for tabs, 為標(biāo)簽頁(yè)進(jìn)行的配置,通過ctrl h/l切換標(biāo)簽等 let mapleader = ',' nnoremap <C-l> gt nnoremap <C-h> gT nnoremap <leader>t : tabe<CR> "conf for plugins {{ 插件相關(guān)的配置 "狀態(tài)欄的配置 "powerline{ set guifont=PowerlineSymbols\ for\ Powerline set nocompatible set t_Co=256 let g:Powerline_symbols = 'fancy' "} "pathogen是Vim用來(lái)管理插件的插件 "pathogen{ call pathogen#infect() "} "}}
(2).vim文件夾
.vim是Vim的主配置文件夾,位于當(dāng)前用戶的主目錄下,可以用cd ~/.vim進(jìn)入。該文件夾一般用來(lái)放置插件和相關(guān)的幫助文檔,常用的目錄結(jié)構(gòu)包括:
doc //幫助文檔目錄
autoload //Vim啟動(dòng)時(shí)自動(dòng)加載的插件目錄
plugin //插件目錄,一般在使用Vim時(shí)通過命令呼出
當(dāng)然,如果你已經(jīng)安裝了足夠多插件,那么這個(gè)目錄下就會(huì)變得五花八門,syntax、snippets、indent等文件夾都會(huì)冒出來(lái)了。一個(gè)插件所包含的文件往往會(huì)分布在多個(gè)文件夾下,管理起來(lái)比較麻煩,稍后我們會(huì)介紹一個(gè)管理插件的插件,讓這個(gè)目錄變得干凈整潔,容易管理,這個(gè)插件的名字叫pathogen!
在Vim中輸入命令:help,即可進(jìn)入幫助頁(yè)面,默認(rèn)是英文幫助,如果你喜歡看中文,可以通過以下方式安裝中文幫助內(nèi)容:
- 下載中文幫助的文件壓縮包
- 解壓,把doc目錄下的文件復(fù)制到~/.vim/doc下
- 確認(rèn)在.vimrc中設(shè)置了
set helplang=cn - 輸入命令
:help即可進(jìn)入中文幫助
基本概念
下面我們來(lái)介紹一下Vim中的幾個(gè)基本概念:Buffer、Window和Tab-page。
- Buffer:使用Vim打開的文件都會(huì)被加載到內(nèi)存中,在內(nèi)存中我們使用Buffer來(lái)描述被編輯的文件,一個(gè)Buffer對(duì)應(yīng)一個(gè)被編輯的文件副本。當(dāng)我們?cè)谕瓿闪艘粋€(gè)Buffer的編輯后就可以保存該文件。Buffer不僅包含了文件的內(nèi)容,也記錄了該文件的編輯狀態(tài)等配置信息,比如激活、隱藏、上次編輯行數(shù)等,具體可以查閱幫助文檔。
用Vim可以打開多個(gè)文件同時(shí)編輯,也可以把不需要的文件關(guān)掉,但這時(shí)文件副本依然保存在緩沖區(qū)中,我們可以通過:ls或:buffers查看這些Buffer,還可以通過類似:buffer n的方式重新打開文件(n表示Buffer的序號(hào))。當(dāng)然,我們有更好的方式來(lái)處理這些Buffer,那就是CommandTBuffer,要想使用CommandTBuffer,先要安裝CommandT插件,請(qǐng)大家記住這個(gè)插件的名字,稍后介紹。 - Window:是對(duì)應(yīng)Buffer的一個(gè)展示窗口。一個(gè)Buffer可以對(duì)應(yīng)多個(gè)窗口,比如我們可以通過
:split filename或:vsplit filename命令在多個(gè)窗口打開一個(gè)文件,當(dāng)修改某一個(gè)窗口的文件是,其他窗口都會(huì)同步更新。當(dāng)然我們也可以在多個(gè)窗口打開多個(gè)文件,編輯后用:wq保存退出,但是記住,只要沒有最終退出Vim進(jìn)程,那么這些打開的文件Buffer依然保存在緩存區(qū)中,可以隨時(shí)再次打開。 - Tab-page:Tab-page就比較容易理解,對(duì)應(yīng)一組窗口,我們可以通過`:tabedit filename`在另一個(gè)標(biāo)簽頁(yè)中打開一個(gè)文件,在這個(gè)標(biāo)簽頁(yè)中又可以打開多個(gè)窗口。
下圖可以清晰的表達(dá)Buffer、Window和Tab-page的關(guān)系:

理解了這三個(gè)概念和三者之間的關(guān)系,對(duì)我們用好Vim有非常大的幫助。
待續(xù),下一篇是Vim的插件篇......
身邊越來(lái)越多的人開始使用Mac,經(jīng)常被問道Mac的使用問題和技術(shù)問題。遂決定,每天發(fā)布一則#Mac技巧#。同時(shí)發(fā)布于微博和微信公眾賬號(hào)“Mac技巧”,微信號(hào)sagacity-mac,有微信賬號(hào)的童鞋掃描下圖片或搜索微信號(hào)即可

浙公網(wǎng)安備 33010602011771號(hào)