誰說Vim不是IDE?(二)

來源:互聯網
上載者:User
文章目錄
  • (1).vimrc介紹
  • (2).vim檔案夾
環境配置

“如果你認為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=4set tabstop=4set 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> gtnnoremap <C-h> gTnnoremap <leader>t : tabe<CR>"conf for plugins {{ 外掛程式相關的配置"狀態列的配置 "powerline{set guifont=PowerlineSymbols\ for\ Powerlineset nocompatibleset t_Co=256let 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的關係:

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

待續,下一篇是Vim的外掛程式篇......

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.