誰說Vim不是IDE?(二)


環境配置

“如果你認為Vim只是一個文本編輯器,你就輸了”——來自Vim老鳥

Vim以簡潔的方式提供了豐富的配置功能,主要配置體系由一個文件和文件夾組成。在一台安裝了Vim的OS X/Linux/Unix機器上,進入用戶主目錄,可以找到.vimrc文件和.vim文件夾,這就是Vim所有的配置信息。

(1).vimrc介紹

用戶目錄下的.vimrc文件就是Vim針對當前用戶的主配置文件,該文件不是必備的,沒有的話就創建它。文件位於當前用戶的主目錄下,可以用~/.vimrc找到,Vim啟動時會自動運行文件中的每條命令。
通過.vimrc我們可以為Vim進行個性化配置,包括使用方式、顯示風格、編寫函數和運行插件等,.vimrc中所有的命令都可以在Vim運行時通過類似:comm args[=args1]的方式動態運行,即時生效。
以下是一個.vimrc的樣例腳本,包含了一些常用配置,后面的注釋是簡要說明。

.vimrc的注釋用雙引號(")表示 ,樣例中的大括號僅表示功能區,屬於注釋的一部分,無其他含義
.vimrc的配置非常豐富,可以定義各種宏、函數、插件和映射,我見過最長的.vimrc配置有1000多行,這里的示例比較簡單,適合入門級用戶

syn on                      "語法支持

"common conf {{             通用配置
set ai                      "自動縮進
set bs=2                    "在insert模式下用退格鍵刪除
set showmatch               "代碼匹配
set laststatus=2            "總是顯示狀態行
set expandtab               "以下三個配置配合使用,設置tab和縮進空格數
set shiftwidth=4
set tabstop=4
set cursorline              "為光標所在行加下划線
set number                  "顯示行號
set autoread                "文件在Vim之外修改過,自動重新讀入

set ignorecase              "檢索時忽略大小寫
set fileencodings=uft-8,gbk "使用utf-8或gbk打開文件
set hls                     "檢索時高亮顯示匹配項
set helplang=cn             "幫助系統設置為中文
set foldmethod=syntax       "代碼折疊
"}}

"conf for tabs, 為標簽頁進行的配置,通過ctrl h/l切換標簽等
let mapleader = ','
nnoremap <C-l> gt
nnoremap <C-h> gT
nnoremap <leader>t : tabe<CR>

"conf for plugins {{ 插件相關的配置
"狀態欄的配置 
"powerline{
set guifont=PowerlineSymbols\ for\ Powerline
set nocompatible
set t_Co=256
let g:Powerline_symbols = 'fancy'
"}
"pathogen是Vim用來管理插件的插件
"pathogen{
call pathogen#infect()
"}

"}}

 

(2).vim文件夾

.vim是Vim的主配置文件夾,位於當前用戶的主目錄下,可以用cd ~/.vim進入。該文件夾一般用來放置插件和相關的幫助文檔,常用的目錄結構包括:

doc                           //幫助文檔目錄
autoload                      //Vim啟動時自動加載的插件目錄
plugin                        //插件目錄,一般在使用Vim時通過命令呼出

當然,如果你已經安裝了足夠多插件,那么這個目錄下就會變得五花八門,syntax、snippets、indent等文件夾都會冒出來了。一個插件所包含的文件往往會分布在多個文件夾下,管理起來比較麻煩,稍后我們會介紹一個管理插件的插件,讓這個目錄變得干凈整潔,容易管理,這個插件的名字叫pathogen

在Vim中輸入命令:help,即可進入幫助頁面,默認是英文幫助,如果你喜歡看中文,可以通過以下方式安裝中文幫助內容:

  1. 下載中文幫助的文件壓縮包
  2. 解壓,把doc目錄下的文件復制到~/.vim/doc下
  3. 確認在.vimrc中設置了set helplang=cn
  4. 輸入命令:help即可進入中文幫助

基本概念

下面我們來介紹一下Vim中的幾個基本概念:Buffer、Window和Tab-page。

  1. Buffer:使用Vim打開的文件都會被加載到內存中,在內存中我們使用Buffer來描述被編輯的文件,一個Buffer對應一個被編輯的文件副本。當我們在完成了一個Buffer的編輯后就可以保存該文件。Buffer不僅包含了文件的內容,也記錄了該文件的編輯狀態等配置信息,比如激活、隱藏、上次編輯行數等,具體可以查閱幫助文檔。
    用Vim可以打開多個文件同時編輯,也可以把不需要的文件關掉,但這時文件副本依然保存在緩沖區中,我們可以通過 :ls:buffers查看這些Buffer,還可以通過類似:buffer n的方式重新打開文件(n表示Buffer的序號)。當然,我們有更好的方式來處理這些Buffer,那就是CommandTBuffer,要想使用CommandTBuffer,先要安裝CommandT插件,請大家記住這個插件的名字,稍后介紹。
  2. Window:是對應Buffer的一個展示窗口。一個Buffer可以對應多個窗口,比如我們可以通過:split filename:vsplit filename命令在多個窗口打開一個文件,當修改某一個窗口的文件是,其他窗口都會同步更新。當然我們也可以在多個窗口打開多個文件,編輯后用:wq保存退出,但是記住,只要沒有最終退出Vim進程,那么這些打開的文件Buffer依然保存在緩存區中,可以隨時再次打開。
  3. Tab-page:Tab-page就比較容易理解,對應一組窗口,我們可以通過`:tabedit filename`在另一個標簽頁中打開一個文件,在這個標簽頁中又可以打開多個窗口。

下圖可以清晰的表達Buffer、Window和Tab-page的關系:

buffer,window,tab

理解了這三個概念和三者之間的關系,對我們用好Vim有非常大的幫助。

待續,下一篇是Vim的插件篇......


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM