1. vim 的安裝及配置

簡介

vim是什麼

vim是一款功能強大、支持各類插件、配置極爲靈活的編輯器,且支持多種主流OS(linux、Unix、mac、windows),可用來各類編程預言的coding和文件編輯,用習慣了vim,你會體會到它是如此的高效和便捷。引用官網(www.vim.org)上vim的自我介紹說:javascript

「Vim is a highly configurable text editor built to enable efficient text editing. It is an improved version of the vi editor distributed with most UNIX systems.Vim is often called a "programmer's editor," and so useful for programming that many consider it an entire IDE. It's not just for programmers, though. Vim is perfect for all kinds of text editing, from composing email to editing configuration files. Despite what the above comic suggests, Vim can be configured to work in a very simple (Notepad-like) way, called evim or Easy Vim.」php

本文主要經過一些示例介紹下如何定製本身專屬的基於vim的IDE編程環境(主要針對c/c++,其餘語言亦可採用相同的思路)。下面咱們就一步一步來介紹,一磚一瓦從零開始建造咱們基於VIM的友好的IDE環境。css

vim的下載與安裝

能夠嘗試:http://www.cnblogs.com/highway-9/p/5984285.htmlhtml

1. 在線安裝

直接shell中輸入以下命令:java

sudo apt-get install vim (ubuntu)
yum install vim (redHat/Fedora/CentOS) 

linux會自動檢測並下載安裝。apt-get 安裝出錯,點這裏。python

2 手動下載編譯安裝

截止當前最新版本是7.4(vim-7.4.tar.bz2),可在windows環境下載好,拷貝至linux環境安裝,或直接linux命令行下載。這裏給出 linux直接下載並編譯安裝(如下均爲shell命令):
1). wget下載mysql

wget ftp://ftp.vim.org/ftp/pub/vim/unix/vim-7.4.tar.bz2

(或用ftp命令登錄ftp://ftp.vim.org,get命令獲取)linux

 2). 解壓c++

bunzip2 vim-7.4.tar.bz2

3). 解壓正則表達式

tar xvf vim-7.4.tar

4). 進入vim74(解壓後的)目錄,執行

./configure --disable-selinux --enable-cscope

(./configure -help 查看後面參數選項的含義)

 5). 編譯

make

6). 安裝

make install

只要不出現error即表明成功安裝,也可直接用vim命令來檢測,或whatis vim(whereis vim)查看。一般狀況下,許多發行版會默認安裝vim,則可省略上述步驟。

vim的初始化配置.vimrc

1. 存放位置

linux環境下vim的初始化配置文件爲.vimrc, 一般有兩個:系統版本和用戶版本,前者不一樣發行版linux會有不一樣,通常位於/etc/vimrc,是整個系統vim的默認配置;後者位於~/.vimrc,是當前用戶的vim配置,會覆蓋系統配置。關於vim的其餘配置參數文件位於/usr/local/share/vim/下,可進入vim,在命令模式下鍵入

:version (查看基本配置路徑)
:echo $VIM ( WINDOW用戶在次目錄下編輯文件_vimrc完成下面配置 )
:echo $HOME(查看具體路徑值)

 ~/.vimrc有時並不存在,此時用戶能夠創建一個.vimrc,放入主目錄以實現本身的vim配置。

2. 主要命令參數 .

vimrc一般用於指定vim的編輯參數和外觀環境。下面列出經常使用的命令參數及其含義:

"打開語法高亮
syntax on

"使用配色方案
colorscheme desert

"打開文件類型檢測功能
filetype on

"不一樣文件類型採用不一樣縮進
filetype indent on

"容許使用插件
filetype plugin on
filetype plugin indent on

"關閉vi模式
set nocp

"與windows共享剪貼板
set clipboard+=unnamed

"取消VI兼容,VI鍵盤模式不易用
set nocompatible

"顯示行號, 或set number
set nu

"歷史命令保存行數 
set history=100 

"當文件被外部改變時自動讀取
set autoread 

"取消自動備份及產生swp文件
set nobackup
set nowb
set noswapfile

"容許使用鼠標點擊定位
set mouse=a

"容許區域選擇
set selection=exclusive
set selectmode=mouse,key

"高亮光標所在行
set cursorline

"取消光標閃爍
set novisualbell

"老是顯示狀態行
set laststatus=2

"狀態欄顯示當前執行的命令
set showcmd

"標尺功能,顯示當前光標所在行列號
set ruler

"設置命令行高度爲3
set cmdheight=3

"粘貼時保持格式
set paste

"高亮顯示匹配的括號
set showmatch

"在搜索的時候忽略大小寫
set ignorecase
 
"高亮被搜索的句子
set hlsearch
 
"在搜索時,輸入的詞句的逐字符高亮(相似firefox的搜索)
set incsearch

"繼承前一行的縮進方式,特別適用於多行註釋
set autoindent

"爲C程序提供自動縮進
set smartindent

"使用C樣式的縮進
set cindent

"製表符爲4
set tabstop=4

"統一縮進爲4
set softtabstop=4
set shiftwidth=4

"容許使用退格鍵,或set backspace=2
set backspace=eol,start,indent
set whichwrap+=<,>,h,l

"取消換行
set nowrap

"啓動的時候不顯示那個援助索馬里兒童的提示
set shortmess=atI

"在被分割的窗口間顯示空白,便於閱讀
set fillchars=vert:\ ,stl:\ ,stlnc:\

"光標移動到buffer的頂部和底部時保持3行距離, 或set so=3
set scrolloff=3

"設定默認解碼
set fenc=utf-8
set fencs=utf-8,usc-bom,euc-jp,gb18030,gbk,gb2312,cp936

"設定字體
set guifont=Courier_New:h11:cANSI
set guifontwide=新宋體:h11:cGB2312
 
"設定編碼
set enc=utf-8
set fileencodings=ucs-bom,utf-8,chinese
set langmenu=zh_CN.UTF-8
language message zh_CN.UTF-8
source $VIMRUNTIME/delmenu.vim
source $VIMRUNTIME/menu.vim

"自動補全
filetype plugin indent on
set completeopt=longest,menu

"自動補全命令時候使用菜單式匹配列表
set wildmenu
autocmd FileType ruby,eruby set omnifunc=rubycomplete#Complete
autocmd FileType python set omnifunc=pythoncomplete#Complete
autocmd FileType javascript set omnifunc=javascriptcomplete#CompleteJS
autocmd FileType html set omnifunc=htmlcomplete#CompleteTags
autocmd FileType css set omnifunc=csscomplete#CompleteCSS
autocmd FileType xml set omnifunc=xmlcomplete#CompleteTags
autocmd FileType java set omnifunc=javacomplete#Complet

 vim的語法高亮/配色方案

vim的配色分兩部分:編輯環境配色和文本區域配色

1) vim編輯環境配色

好比Vim編輯區的前景背景色、狀態欄顏色、錯誤提示顏色、查找、光標、圈選區、行號、摺疊等的顏色這裏列出幾個配色組名及其含義(所有的詳細信息查看幫助文件 :help hi 查找 "highlight-group" 便可):

Cursor        光標下的字符顏色    
CursorLine    光標所在行顏色    
ErrorMsg      命令行出現的錯誤信息提示    
IncSearcg     被搜索字符的顏色    
Normal        普通字符    
Pmenu         彈出的提示條目顏色    
PmenuSel      彈出的提示條目中被選中條目的顏色    
SpellBad      拼寫錯誤字符顏色    
Visual        可視化模式下選中字符的顏色    
Menu          菜單欄的顏色字體    
Scrollbar     滾動條的顏色   

2) 文本區域配色:

可編輯的文本區域的字符配色(詳細信息請執行 :help hi搜索 "*comment")
因爲配色種類較多,vim默認分了幾大類(幫助信息中帶*的):

*Comment        註釋  
*Constant       常量  
*statement      經常使用關鍵字標示符  
*PrePoc         預處理符號  
*Type           數據類型  

 下面是較爲詳細的組別:

String          字符串常量: "string abc\n"  
Character       單個字符常量: 'c', '\n'  
Number          數字常量: 234, 0xff  
Boolean         布爾常量: TRUE, false  
Function        函數名  
Conditional     條件關鍵字: if, then, else, endif, switch, etc.  
Repeat          循環關鍵字: for, do, while, etc.  
Operator        操做符: "sizeof", "+", "*", etc.  
Exception       異常關鍵字: try, catch, throw  

 這樣即可以更爲詳細的爲每個組別進行配色。

查看當前的vim配色狀況

:hi/highlight

另外,文本區域的配色能夠關閉,但環境配色不能,一般vim給定的默承認選配色方案中同時包含了以上兩個方面。
下面就一條具體的配色命令(對數據類型配色)解釋每一個字段的含義:

hi Type cterm=none ctermbg=White ctermfg=Green guibg=Gray guifg=Red

hi: highlight的縮寫,配色命令
Type: 配色組名,能夠自定義(修改$VIMRUNTIME/syntax/下對應的文件可改變不一樣語言的高亮方案)其內容
cterm,ctermbg,ctermfg,guibg,guifg: 表明了不一樣顯示環境
White,Green: 表示顏色(也能夠用數字或者相似與html的16進制顏色表示方法)

顯示環境有三種:黑白終端,彩色終端,圖形界面,三種環境下參數名稱以下:

term        attributes in a B&W terminal  
cterm       attributes in a color terminal  
ctermfg     foreground color in a color terminal  
ctermbg     background color in a color terminal  
gui         attributes in the GUI  
guifg       foreground color in the GUI  
guibg       background color in the GUI  

其中term僅有黑白兩色,cterm下顏色較爲單一,GUI模式顏色豐富

若要僅修改某種語言(c、Java、pascal)的配色,則在配色組名前加語言名稱便可,好比對c/c++語言的數據類型單獨配色:

hi cType ctermfg=Blue

如果修改java/pascal的數據類型,則相應的將cType替換爲javaType/pascalType便可。

對於文本區域的語法高亮(即配色),咱們可根據需求特殊化定製,好比自定義組: myUniqueWord, mySymbol,使用syn/syntax命令

syn keyword myUniqueWord gang Gang swagger
syn match mySymbol "[,.;(){}[]]" (可以使用正則表達式)

vim目前7.4版本給出的可直接使用(colorscheme命令加於.vimrc中便可)的配色方案位於目錄:/usr/local/share/vim/vim74/colors,好比使用desert.vim中的配色,則於.vimrc中添加一行

colorscheme desert

便可

網友提供的配色方案列表(帶效果圖),可參考:
http://vimcolorschemetest.googlecode.com/svn/html/index-c.html
http://www.oschina.net/news/32306/10-vim-color-schemes-you-need-to-own

hi/highlight

命令,可查看當前vim的顏色配置

:help hi/highlight

顯示幫助文件(syntax.txt,可訪問官方在線版http://vimdoc.sourceforge.net/htmldoc/syntax.html)內容,介紹了顏色配置腳本中關鍵字的含義和使用方法

相同配色vim腳本在不一樣的終端下可能顯示不太一致,這是由終端下顏色設置不一致致使的,屬正常狀況。

vim的代碼補全、結構化視圖

(基於autocomplpop + omnicppcomplete + ctags + taglist + cscope + NERDtree)

先一句話介紹每一個插件的用途:
--> ctags: 爲源碼的變量/對象、結構體/類、函數/接口、宏等產生索引,以便快速查找和定位
 - Official site  http://ctags.sourceforge.net/
 - VIM online  http://www.vim.org/scripts/script.php?script_id=610

--> taglist:提供源碼的結構化瀏覽功能
 - Official site  http://vim-taglist.sourceforge.net/
 - VIM online  http://www.vim.org/scripts/script.php?script_id=273

--> AutoComplPop:代碼補全提示自動彈出
 - VIM online  http://www.vim.org/scripts/script.php?script_id=1879

--> OmniCppComplete:基於ctags的索引文件提供全面的c++(類成員、繼承、this指針、.->訪問符等)的代碼補全功能
 - VIM online  http://www.vim.org/scripts/script.php?script_id=1520

--> cscope:對代碼產生索引數據庫,提供對象接口字符串的查找,並用列表顯示(:cw - quickfix)
 - Official site  http://cscope.sourceforge.net/
 - VIM online  http://www.vim.org/scripts/script.php?script_id=4082

--> NERDtree:以樹形結構顯示文件系統的目錄(同windows的資源管理器),並能夠在目錄間切換
- VIM online http://www.vim.org/scripts/script.PHP?script_id=1658

vim支持的幾乎全部plugin&&utility都在這裏能夠下載到(主要以vim腳本的形式)
http://www.vim.org/scripts/index.php

下面逐一介紹各個插件的安裝和使用方法
1) ctags
2) taglist
3) AutoComplPop
4) OmniCppComplete
5) cscope

6) NERDtree
(待續)

 

因爲後續各個插件的介紹篇幅較長,單獨造成博文,請參考:

ctags 的安裝和使用方法,請猛擊:http://blog.csdn.net/g_brightboy/article/details/16830395

taglist的安裝和使用方法,請猛擊:http://blog.csdn.net/g_brightboy/article/details/16843899

AutoComplPop和OmniCppComplete的安裝和使用方法,請用力敲鼠標左鍵:http://blog.csdn.net/g_brightboy/article/details/19498983

相關文章
相關標籤/搜索