Mac開發利器之程序員編輯器MacVim學習總結

 Emacs和Vim都是程序員專用編輯器,Emacs被稱爲神的編輯器,Vim則是編輯器之神。至於兩者到底哪個更好用,網絡上兩大派系至今還爭論不休。不過,相比之下,Emacs更加複雜,已經不能算是一個編輯器了,有人這麼說:Emacs是僞裝成編輯器的操作系統。與之相反,Vim的定位很明確,就是要做一個強大的編輯器。由於筆者精力有限,決定還是選擇自己認爲相對簡單點的Vim來學習。因此,筆者將會在本文跟大家介紹Mac下Vim的安裝以及簡單使用。
          首先,Mac系統默認已經安裝了Vim。打開終端,輸入vim,回車。可看到如下界面,即表示Vim已經安裝了。在vim裏輸入":q"


         在終端上,界面非常之簡潔,如果你需要更加複雜的界面以及使用Vim更多的特性,需要下載客戶端安裝。在Mac上目前存在兩個版本的Vim客戶端:
         1、MacVim。使用Cocoa GUI,這是Mac上更新還很活躍的版本,也是Mac上最多人使用的版本。下載地址:http://code.google.com/p/macvim/
         2、使用Carbon GUI的版本,但是這個版本目前基本上不再更新。下載地址:http://sourceforge.net/projects/macosxvim/files/

         本文主要介紹MacVim,MacVim支持多窗口標籤編輯以及全屏等新特性。下載了相應MacVim壓縮包,解壓以後將MacVim.app拖入/Applications目錄下。啓動MacVim,輸入":h mvim", 按照提示,需要將mvim腳本文件拷貝到"/usr/local/bin"目錄下。打開終端,輸入命令 "cd /usr/local"以及"sudo mkdir bin",最後輸入"sudo cp -f /Users/ericli/SoftWare/MacVim-snapshot-66/mvim  /usr/local/bin/",這樣就可以在終端輸入命令"mvim"來快速啓動MacVim 。如果你不想將MacVim.app放到/Applications目錄下,只需要在終端設置VIM_APP_DIR變量爲你想放置MacVim.app的目錄並導入到$HOME/.bash_profile中即可,比如:export VIM_APP_DIR=$HOME/SoftWare/MacVim-snapshot-66/。在MacVim輸入":h macvim",可以查看MacVim的使用幫助介紹文檔。


 

        

        現在MacVime的界面還是很簡陋,下面開始介紹如何簡單配置MacVim:

        1、創建~/.bashrc文件

        在終端鍵入"cd $HOME" 和“touch .bashrc”,即創建成功。打開文件,輸入“alias vim=mvim”,並保存別名變量。然後再在終端鍵入“source .bashrc”使.bashrc文件生效。這樣,在終端輸入vim和mvim都可以啓動MacVim.app了。

        在這裏稍微解釋下幾個文件的作用,/etc/bashrc、/etc/profile是系統全局環境變量設置,給所有用戶使用,~/.bashrc、~/.bash_profile、~/.bash_login、~/.profile是用戶目錄下的私有變量設置。當進入系統運行一個bash shell進程時,讀取環境設定過程如下:1、讀取全局環境變量設置/etc/profile,然後根據其內容讀取/etc/profile.d、/etc/bashrc等設定,但是注意/etc/profile只在第一次運行bash shell時讀取一次,而/etc/bashrc在每次運行bash shell都讀取;2、然後讀取當前用戶目錄下的~/.bash_profile、~/.bash_login或~/.profile三個中的其中一個文件的局部變量設置,而且只在第一次運行bash shell時讀取,只有讀取~/.bash_profile失敗纔會讀取~/.bash_login,如果前邊兩文件讀取失敗纔會讀取~/.profile;3、最後根據~/.bash_profile的內容讀取當前用戶目錄下的~/.bashrc文件中的局部環境變量設置,~/.bashrc文件在每次打開新的bash shell都讀取一次。總結一下,/etc/bashrc、/etc/profile、~/.bashrc、~/.bash_profile、~/.bash_login、~/.profile都能設置環境變量,而/etc/profile、~/.bash_profile、~/.bash_login、~/.profile可以設定路徑、環境變量等,只能登入的時候執行一次;/etc/bashrc、~/.bashrc保存路徑、命令別名等,每次打開新的bash shell都會執行一次,通常前者/etc/profile、~/.bash_profile調用後者/etc/bashrc、~/.bashrc。更詳細的資料可以參考該鏈接:http://blog.chinaunix.net/uid-24591881-id-2124780.html 。

      2.配置~/.vimrc和~/.gvimrc

      首先,在MacVim編輯器中輸入“:version”,看到如下圖示信息:


     從上圖可以看出一些MacVim的配置信息:

     $VIM系統變量的路徑爲:"/Applications/MacVim.app/Contents/Resources/vim"

     MacVim的系統配置文件vimrc的路徑:“$VIM/vimrc”

     用戶配置文件vimrc的路徑:"$HOME/.vimrc"

     MacVim編輯器的用戶初始化配置文件的路徑:"$HOME/.exrc" (默認不存在,如果需要使用則在終端輸入 “touch $HOME/.vimrc”創建)

     MacVim的系統配置文件gvimrc的路徑:"$VIM/gvimrc"

     用戶配置文件gvimrc的路徑:"$HOME/.gvimrc"

     MacVim的菜單文件的路徑:"$VIMRUNTIME/menu.vim"

     另外解釋下, $HOME爲當前用戶目錄的路徑,$VIMRUNTIME路徑爲"/Applications/MacVim.app/Contents/Resources/vim" . 可以在MacVim中輸入”:echo $VIMRUNTIME“來查看這些系統變量的路徑。

     其次,從系統文件vimrc_example.vim和gvimrc_example.vim中copy標準的內容,保存到用戶的配置文件~/.vimrc和~/.gvimrc中。在MacVim中輸入如下命令:

[html] view plaincopy
  1. :e $VIMRUNTIME/vimrc_example.vim  
  2. :saveas ~/.vimrc  
  3. :e $VIMRUNTIME/gvimrc_example.vim  
  4. :saveas ~/.gvimrc  

     3、添加插件

        通常有如下兩種方式添加插件:

      其一:拷貝該 plugin_name.vim插件到你個人插件目錄~/.vim/plugin/下,拷貝plugin_help.txt到你個人文檔目錄~/.vim/doc/下,若存在該插件syntax的vim支持文件則放到~/.vim/syntax/目錄下,如果以上目錄不存在到終端輸入如下命令創建:

[html] view plaincopy
  1.   
[html] view plaincopy
  1.   
[html] view plaincopy
  1. cd $HOME  
  2. mkdir .vim  
  3. mkdir .vim/plugin  
  4. mkdir .vim/doc  
  5. mkdir .vim/syntax  
       比如,拷貝matchit.txt到~/.vim/doc/下,拷貝matchit.vim到目錄~/.vim/plugin/下, 

      其二,在你的vimrc配置文件最後加一行命令:

[html] view plaincopy
  1. source $VIMRUNTIME/macros/matchit.vim0  

       最後,還有一種不常用的方式可以安裝插件,將插件、文檔、syntax支持文件分別放到$VIMRUNTIME/plugin/  、$VIMRUNTIME/doc/、$VIMRUNTIME/syntax/三個目錄下,或者/usr/share/vim/vim73/plugin/、/usr/share/vim/vim73/doc/、/usr/share/vim/vim73/syntax三個目錄下都可以使MacVim自動加載插件。

 

        以上安裝插件的方法都比較麻煩,並且每個插件的文件分散到幾個文件夾去,不方便管理。在這裏給各位推薦一個很方便管理插件的Vim插件vundle:https://github.com/gmarik/vundle。vundle可以使得安裝的插件的文件都放到同一個目錄下,並且簡單設置就可使用。安裝方法如下:

        首先,在終端輸入如下命令:

[html] view plaincopy
  1. git clone https://github.com/gmarik/vundle.git ~/.vim/bundle/vundle  
         然後,在~/.vimrc裏寫入以下配置:

[html] view plaincopy
  1. set nocompatible               " be iMproved  
  2.  filetype off                   " required!  
  3.   
  4.  set rtp+=~/.vim/bundle/vundle/  
  5.  call vundle#rc()  
  6.   
  7. " let Vundle manage Vundle  
  8. " required!   
  9. "這是vundle本身的設置  
  10.  Bundle 'gmarik/vundle'    
  11.    
  12.  " My Bundles here:  
  13.  "這裏是設置你自己自定義的插件的設置vundle設置,注意:下載的插件git爲:https://github.com/godlygeek/tabular.git,則設置爲Bundle 'godlygeek/tabular';https://github.com/gmarik/vundle.git設置則爲 Bundle 'gmarik/vundle'    
  14.  " original repos on github  
  15.  Bundle 'godlygeek/tabular'  
  16.   
  17.  " vim-scripts repos,vim-scripts的訪問地址,格式則如下:  
  18.  Bundle 'L9'  
  19.  Bundle 'FuzzyFinder'  
  20.  " non github repos ,非git的訪問地址的,格式如下:  
  21.  Bundle 'git://git.wincent.com/command-t.git'  
  22.  " ...  
  23.   
  24.  filetype plugin indent on     " required!  
  25.  "  
  26.  " Brief help  
  27.  " :BundleList          - list configured bundles  
  28.  " :BundleInstall(!)    - install(update) bundles  
  29.  " :BundleSearch(!) foo - search(or refresh cache first) for foo  
  30.  " :BundleClean(!)      - confirm(or auto-approve) removal of unused bundles  
  31.  "  
  32.  " see :h vundle for more details or wiki for FAQ  
  33.  " NOTE: comments after Bundle command are not allowed..  

       

        最後,登陸MacVim,運行:BundleInstall命令。這樣,Vundle.vim管理插件就安裝成功。接下來繼續簡單介紹下,Vundle插件的使用:

搜索新的插件:

[html] view plaincopy
  1. :BundleSearch matchit   


安裝新的插件:

[html] view plaincopy
  1. :BundleInstall matchit.zip  

  
最後在~/.vimrc中的註釋" vim-scripts repos下,加入如下命令並保存.vimrc文件,這樣一個插件就安裝成功了:

[html] view plaincopy
  1. Bundle 'matchit.zip'  

更新所有安裝的插件(這個命令會根據~/.vimrc的Bundle 設置來更新插件):

[html] view plaincopy
  1. :BundleInstall  
列出所有安裝的插件列表:

[html] view plaincopy
  1. :BundleList  

清除插件命名(這個命令我測試有些插件刪除不了,手動刪除~/.vim/bundle的相關插件的目錄,並將~/.vimrc中的相關配置去掉即可):

[html] view plaincopy
  1. :BundleClean   

上述中的Tabular插件是用於編碼中的字符對齊的,關於其具體用法見鏈接:https://github.com/godlygeek/tabular.用法是選定一段文本,然後輸入相應的命令來根據相應的字符對齊。幾個常用的命令如下:

[html] view plaincopy
  1. :Tab /=   
  2. :Tab /:  
  3. :Tab /:\zs  
  4. :Tab /|  
分別是選定文本按=、:、:\zs、|等符號對齊。

     推薦一些插件:

       NERD_tree : 一個文件管理插件,一些常用命令: 打開一個目錄樹( :NERDTree <啓動目錄> | <bookmark>  )  關閉目錄樹欄(:NERDTreeClose);切換目錄樹欄(:NERDTreeToggle);  定義標籤(:Bookmark <name>);定義Root標籤(:BookmarkToRoot <bookmark>)。。。。。。更多命令和用法見 :help NERD_tree。

  word_complete  :代碼自動補全

  SuperTab :省去Ctrl-n或Ctrl-p快捷鍵,通過按tab鍵快速顯示補全代碼.

  xptemplate : 快速自動完成一些if、switch、for、while結構模板代碼,支持c、c++、Lua、Ruby、Php、html、css、javascript等多種語言。一般是輸入結構體的關鍵字後,再按Ctrl-\組合鍵即可完成代碼補全,然後按Tab鍵跳轉到不同的位置替換模板內容。比如:輸入for後按Ctrl-\組合鍵即可快速完成for結構的模板代碼。

  ctags : 一個掃描記錄代碼的語法元素,並記錄爲tag,方便代碼定位跳轉等操作,MacVim自帶,但是據說有點問題,筆者用Vundle安裝的貌似也有問題,推薦用MacPorts安裝,然後在~/.gvimrc配置中加入:  let Tlist_Ctags_Cmd="/opt/local/bin/ctags"。用法:在終端 cd 進入到你的項目根目錄,輸入語句即可將項目所有代碼文件打上tag: 

 ctags ---c++-kinds=+px --fields=+iaS --extra=+q .

   taglist : 可以用Vundle安裝,在編輯代碼文件時,輸入命令":TlistToggle"在右邊就會出現當前類的函數或變量列表。輸入命令“:tag <函數名或變量、類>”,如果只有一個文件定義了該函數或變量、類,vim打開該文件並將光標定位到對應的位置;如果多個文件有這個函數名或變量、類的tag,將給提示,並可輸入“:tselect” ,顯示可選的文件。快捷鍵跳轉Ctrl+],Ctrl-o。

   Cscope :功能跟ctags差不多,不過更加強大,MacVim默認已經支持,輸入“:version”命令查看.

   OmniCppComplete : 功能跟taglist差不多。 

   a.vim :在.cpp文件和.h頭文件間快速切換的插件。

   grep.vim : 在工程中查找詞彙的插件。

   minibufexplorerpp : 操作緩存buffer窗口。

   quickfix :MacVim內置安裝好了,不需要重新安裝。顯示一些命令查詢結果以及編譯錯誤等信息。

   Command-t :用Commad-t命令快速查找切換文件。如果是用Vundle安裝的話,還不能使用,在MacVim中輸入“:CommandT”命令會報錯。用Vundle安裝好打開終端,輸入如下命令,等待編譯完畢後就可以使用了:

[html] view plaincopy
  1. cd ~/.vim/bundle/Command-T/ruby/command-t  
  2. ruby extconf.rb  
  3. make  

   NERD_commenter.vim : 註釋插件。

   DoxygenToolkit.vim : 用於快速生成註釋,並由註釋生成文檔。

   winmanager : 可以用Vundle安裝,管理窗口的插件,可以跟NERD_tree、Taglist插件結合,打造一個類似IDE的界面。只需要在NERD_tree.vim中加入如下代碼:

[html] view plaincopy
  1. let g:NERDTree_title = "NERDTree"  
  2. function!  NERDTree_Start()  
  3.     exec 'NERDTree'  
  4. endfunction  
  5. function! NERDTree_IsValid()  
  6.     return 1  
  7. endfunction  

並且在winmanager.vim的找到下面代碼,增加一句代碼:

[html] view plaincopy
  1. " toggle showing the explorer plugins.  
  2. function! <SID>ToggleWindowsManager()  
  3.     if IsWinManagerVisible()  
  4.         call s:CloseWindowsManager()  
  5.     else  
  6.         call s:StartWindowsManager()  
  7.         "NERDTree 打開的時候有一個空白窗口,需要關閉  
  8.         exec 'q'  
  9.     end  
  10. endfunction  


最後在~/.gvimrc中加入如下配置:

[html] view plaincopy
  1. "在vim左側顯示窗口Taglist和文件列表窗口  
  2. "let g:winManagerWindowLayout='FileExplorer,BufExplorer|TagList'  
  3. let g:winManagerWindowLayout='NERDTree, BufExplorer|TagList'  
  4. "打開vim時自動打開winmanager  
  5. let g:AutoOpenWinManager = 1  
  6. "定義打開關閉winmanager的快捷鍵爲 wt組合鍵命令  
  7. nmap wt :WMToggle<cr>  


           

重啓,即可看到一個類似IDE的Vim界面。



   4、Vim的模式與一些常用命令

 i、Vim的模式

      Vim有三種模式,Normal 、Insert 、 Visual。在Normal模式下,可以輸入運行命令;在Insert模式下,可以輸入編輯文本;在Visual模式下,可以對選定的文本運行命令操作並該命令僅僅作用於選定文本。啓動Vim的默認模式是Normal模式,輸入 i、I、a、A、o、O、s、S、r、R可以進入Insert模式,其中區別在於:

       

   進入Insert模式的命令區別
命令 區別
     i  在光標之前插入字符
     I 在光標所在行的所有字符開頭之前插入字符
    a 在光標之後插入字符
    A 在光標所在行的所有字符之後插入字符
o 在當前光標的下面打開新的一行
O 在當前光標的上面打開新的一行
s 刪除當前光標下的字符
S 刪除當前光標所在行的所有字符
r 用新輸入的字符替換當前光標所在字符,然後立即返回Normal模式
R 在當前光標位置所在字符開始往後一直用新輸入的字符替換所有原有字符














  


 







     


      

  在Nomal模式中輸入v進入Visual模式。 Insert模式或Visual模式中按Esc鍵即返回Normal模式。


iiVIm的常用命令(不做特殊注釋的話,下面的命令一般在Normal模式生效,一般對文本操作的命令在Visual模式下也同樣生效)

        (1)、光標的移動: 

          h()j(下)、k(上)、l(右)移動光標。還可以在命令之前輸入數字,指定要移動多少行。比如:7h表示左移7個光標,6j表示光標下移6行。

         標向前跳多個詞到達詞首,比如5詞,輸入5w;標向後跳7詞到達詞首,輸入7b。跳到3單詞後的詞末,輸入3e;跳到3單詞前的詞末,輸入3ge

         動到行首第一個非空字符,輸入"^"或按Home鍵;移動到光標所在行的第一個字符(包括空格);移動到行尾,輸入"$"或按End鍵。注意,這個只有"$"或按End鍵之前加數字會生效。

         向前移動到某個指定的字符,比如向前找第三個“h”輸入”3fh“;向前把光標移動到第四個"b"字符的前一個字符上,輸入”4tb“。向後移動到某個指定的字符,比如向後查找第三個”h“輸入”3Fh“;向後把光標移動到第四個”b“的後一個字符上,輸入”4Tb“這四個命令都可以使用”;“命令重複,","命令反向重複。光標不會移出當前行。

         "%"命令可以將當前光標所在的括弧移動到匹配的括弧的位置,比如:從”)“動到”(“,反之亦然。

         gd命令到達光標所在處函數或變量定義之處。 

         ”*“”#“命令匹配當前光標所在單詞, ”*“移動光標的下一個匹配單詞,而”#“命令是移動光標到上一個匹配單詞。

         移動到指定行,比如想移動到第30行,輸入30G輸入30gg。沒有數字限制的話,G命令將光標移動到文件的尾部,gg命令移動光標到文件開始。

         移動都某部分,比如到文件大約10%的行位置,輸入”10%“

         H命令移動光標到視野內的第一行,M動到視野內的中部,L動光標到視野內的最後一行。

         確定光標的位置,輸入Ctrl-G命令。

         Ctrl-u命令光標向上移動半屏,Ctrl-d標向下移動半屏。

         Ctrl-e上滾一行,Ctrl-y下滾一行。

         Ctrl-f標向前移動一整屏,Ctrl-b標向後移動一整屏。

        ”zt“命令將光標所在行移動到屏幕的頂部,”zz“命令將光標所在行移動到屏幕的中部,”zb“將光標移動到屏幕的底部。

         (2)刪除字符:

         刪除某個字符,移動光標到所在字符,然後輸入x或dl(光標下的字符)、X或dh(光標籤的字符)刪除多個字符,可以在x之前加數字;

         刪除從當前光標到所在行上指定的某個字符之間的所有字符(包括該指定字符)

         刪除某行,移動光標到所在行,然後輸入dd

         刪除換行符將兩行連起來,光標移動到要合併的兩行的第一行,然後輸入J

         利用命令組合模式,操作符-動作。d命令後跟一個光標移動動作,將刪除從當前位置到光標移動到的目標位置的全部內容。例如:刪除從當前光標向前的5單詞,命令爲d5w刪除從當前光標位置到行尾的字符,命令爲d$

         db表示從當前位置刪除到前一個單詞的開頭。diw表示刪除光標上的單詞(不包括空格)。daw表示刪除光標上的單詞(包括空格)。

         從當前光標位置上的字符一直刪除到指定的字符(包括指定字符),用df命令,比如,刪除到r,命令爲dfr。從當前光標位置刪除到指定字符的前一個字符,用dt命令,比如:dtr。

         dG 表示從當前光標位置一直刪除到文件的末尾。dgg表示從當前光標位置一直刪除到文件的開始。

          (3)、修改字符:

          修改字符的操作命令是c。作用是刪除字符後自動切換到Insert模式,比刪除操作命令多了一個切換到Insert模式的功能。

          修改光標下的 字符,cl.

          修改光標前的字符,ch.

          修改當前光標後的3個詞,組合命令是c3w。

          修改當前光標之前的單詞,cb.

          修改光標上的單詞,不包括空格,ciw。

          修改光標上的單詞,包括空格,caw。

          修改到指定字符(包括指定字符),比如修改到e,命令爲cfe。

          修改到指定字符之前一個字符,比如,修改到e之前的字符,cte.

          修改光標所在行一整行,cc。

          從當前光標位置修改到行尾,c$。

          cG,修改到文件的末尾。

          cgg,修改到文件的開頭。

         (4)、替換字符

         r命令是進入Insert模式的命令之一,進入Insert模式等待你輸入一個字符替換當前光標上的字符後自動返回Normal模式。 

         在r命令之前加入數字前綴,可以用一個字符替換當前光標後的多個字符。比如:3rp。但是例外的是,如果替換的字符是回車鍵,則只會用一個換行符替換多個字符。        

         使用R命令啓動Replace模式, 這個模式下在當前光標位置所在字符開始往後一直可以持續用新輸入的字符替換所有原有字符,直到你退出Replace模式。在這個模式下,使用退格鍵Backspace,原來被替換的字符會恢復。

        (5)查詢字符:

         從當前光標位置向前查找當前行上的某個指定字符的第一個字符,命令是f。比如: 查找w,fw。F也和f命令一樣,但是查找方向相反。

        從當前光標位置向前查找當前行上的某個指定字符的前一個字符,命令是t。比如: 查找o之前的字符,to。T也和t命令一樣,但是查找方向相反。

         向前查找字符單詞命令, ”/“後加上想查找的字符單詞。比如:”/a“ 就是查找字符”a“。想要向前查找當前光標後第三個匹配的a還需要輸入”3n“命令。向後第三個則輸入”3N“

         向後查找字符,”?“後加上想查找的字符。想要向前查找光標後第三個匹配的字符,還需輸入”3N“。向後第三個則輸入”3n“

         查找字符通常區分大小寫的,如果不想區分大小寫,可在~/.vimrc文件中加入命令"set ignorecase"命令。

         還可以將光標移動要查找的單詞上,然後輸入”*“命令,這樣將取得當前光標上的單詞並向前查找該單詞。想要向前查找光標後第2單詞,可以輸入"2*"

          向後查找當前光標上的單詞,則可以輸入”#“。想要向後查找當前光標的第2單詞,可以輸入”2#“

          輸入”/di“,也可能查找到單詞”media“。如果想限定di只匹配單詞開頭,可以輸入”/<di“。如果只想查找以di結尾的單詞,則可以輸入”/di>“。如果只想查找完整的單詞"di"輸入”/<di>“。注意,”*“”#“命令也是匹配整個單詞查找的,如果想要部分匹配,輸入”g*“”g#“

          "/^di",只匹配行首。"/di$"只匹配行未。”/^di$“僅僅匹配包括”di“的行並不帶空格。

           ”/d.i“只匹配第一個字符是”d“,第二個字符是任意字符,第三個字符是”i“的字符串。

          ”/di/.“匹配帶特殊字符”.“的字符串”di.“

          (6)、複製字符

          使用d、x或其它命令刪除文本的時候,這些被刪除的文字將會被Vim緩存起來。可以使用p命令將該被刪除的文本在當前光標的前面(比如前一行)重新粘貼出來。

          使用y(yank:抽出)操作符命令可直接把文字拷貝到寄存器中,然後用p命令粘貼到其他地方。比如:拷貝4個單詞,4yw(包括了單詞後面的空格,用ye則不包括單詞後的空格)。

         yl拷貝當前光標下的字符,yh拷貝當前光標之前的字符。

         yw拷貝當前光標到下一個單詞的開頭,yb拷貝當前光標到上一個單詞的開頭。yiw,拷貝光標上的單詞(不包括空格)。yaw,拷貝光標上的單詞(包括空格)。

 y$拷貝到行尾。

          yy命令拷貝一整行,快捷方式爲Y。

          yG,拷貝到文件的末尾。

          ygg,拷貝到文件的開頭。

       (7)、文本對象

          當處於某個單詞或句子的中間,而又想刪除整個單詞或句子時,可以使用文本對象。比如:diw可以刪除一整個單詞(iw表示Inner word,不包括單詞後的空格),如果想要包含單詞後的空格也刪除,可用命令daw。同樣地,cis表示修改一整個句子(is表示Inner Sentence,不包括句子後的空格),如果想要包含句子後的空格也修改,則用命令cas。

          同樣地,在Visual模式下,也可以用文本對象命令來選中更多的文本。比如使用aw選中當前的整個單詞,再次使用則選中多一個單詞。

          文本對象的表達式:<操作命令>a<文本對象>或<操作命令>i<文本對象>,操作命令可以是任何命令,如d,y,c;文本對象可以是一個單詞w,一個句子s,一個段落p,也可以是一個特殊的字符:"、'、)、}、]。

          使用 :help text-objects 可以在幫助裏查看更多的文本對象的更多命令內容。

          使用:help operator 可以在幫助裏查看更多的操作符命令內容。

          (8)、撤銷與重做:

          銷上一個編輯操作,輸入u;撤銷所有在前一個編輯行上的操作,輸入U;重做,輸入Ctrl+r

         "."命令表示重複最後一次除u命令、Ctrl-r命令和冒號命令之外的任何操作命令。

          (9)查找命令

         輸入"/"”?“”:"後,按方向鍵上箭頭或下箭頭,可以查找同樣的歷史命令記錄。

         (10)、命令次數:

          可以在很多命令之前加上數字,表示執行該命令的次數。

          在組合命令的中,數字可以放在不同的地方。比如:修改5個單詞,5cw和c5w都一樣;刪除10個單詞,可以寫成10cw、c10w,或者2c5w、5c2w。其中的差別在於數字修飾的命令不一樣,但是作用是一樣的。

          (11)、退出:

           保存文件並退出,輸入ZZ或":wq"或“:x”;放棄修改並退出,輸入“:q!”;強制退出所有打開的文件,輸入“:qa!”

           (12)、放棄執行命令:

          Esc鍵可以終止大部分命令。    

          (13)、幫助:

          輸入“:help”進入幫助窗口;輸入ZZ,退出幫助窗口。

          獲得具體的幫助,比如關於u命令的幫助,輸入類似“:help u”

          認顯示Normal模式的幫助,要顯示其他模式的命令,可以使用“i_”綴。

          獲取命令參數的幫助,比如:“:help -e”.

          使用“:helptags ~/.vim/doc” 命令產生插件的本地tags文件,從而可以在幫助中查詢插件的文檔。

          (14)標籤跳轉:

           [ ]包起來的文字是一個標籤鏈接,光標移動到 [ ]間,按Ctrl+]組合鍵跳轉到標籤鏈接的地方。Ctrl+t Ctrl + O跳回前一個標籤。

          使用G命令或者”n“命令或者查找”/“命令跳到其他行後,Vim記錄下你跳過來的地方,使用兩個單引號('')即可跳回原來的地方;或者使用Ctrl-o命令跳到較舊的地方;Ctrl-i命令Tab鍵跳到較新的地方。輸入":jumps"命令可以看到光標跳轉的位置列表信息。

           使用”m“命令標記當前光標的位置,位置的名稱只能爲a~z單個字母(區分大小寫)。比如:定義當前光標的位置爲”E“,命令"mE"設置後可以通過單引號'+標名稱,或者上句號`+標名稱可以跳到指定的光標位置,區別是單引號 ’E命令跳轉到標記光標位置所在行的首個非空字符(列的位置跟標記的時候不同),而上句號 `E轉到標記的光標原來位置(包括行和列的位置都跟標記的時候一樣)。輸入”:marks“命令可以查看所有帶名稱的標記信息列表,其中有幾個特殊的標記。比如:單引號 ' ,表示跳轉前的位置。雙引號 "表示Normal模式最後編輯的位置。中括號 [表示文件第一行的第一列。中括號 ]表示文件最後一行的第一列。 ^表示Insert模式下最後修改的位置。 表示無論是Insert模式或Normal模式最後修改的位置的開頭。

         (15)顯示Vim相關的文件路徑

         :scriptnames命令可以查找~/.vimrc~/.gvimrc或插件等文件的路徑。

         (16)、在vim中打開編輯文件命令: 

[html] view plaincopy
  1. :e! ~/.vimrc  

          保存文件: 

[html] view plaincopy
  1. :w  

           另存爲:

[html] view plaincopy
  1. :saveas pathFile  

          當同時打開多個文件,在多個文件間切換命令:

[html] view plaincopy
  1. :bn //下一個文件       
  2. :bp  //前一個文件  
          

         (17)、Visual模式

         之前介紹過,在Normal模式下,輸入v,進入Visual模式。這樣,你對光標作任何移動操作,從當前光標位置到移動到的位置之間的文本都會高亮,此時輸入操作命令,比如刪除命令d,則高亮部分文本會被刪除。

       在Visual模式下光標的移動操作跟Normal模式差不多。注意,在Visual模式下,"o"命令表示返回到選中文字的另一端,這跟Normal模式不同。

     (18)、快捷鍵與一些常用的命令:

        一些經常使用的組合命令,存在等價的快捷單字符命令:

         dl 的等價快捷鍵爲 x,作用刪除當前光標下的字符。

        dh的等價快捷鍵爲 X,作用刪除光標左邊的字符。

        d$的等價快捷鍵爲D,作用刪除到行尾。

        cl的等價快捷鍵爲s,作用修改當前光標的字符。

        cc的等價快捷鍵爲S,作用修改一整行。

        c$的等價快捷鍵爲C, 作用修改到行尾。

        yy的等價快捷鍵爲Y,作用拷貝一整行。


         一些常用的命令的如下:

        c           修改操作命令

        d          刪除操作命令

        y          複製到寄存器的操作命令

        ~          修改選中的字符的大小寫,原來大寫的轉換成小寫,原來小寫的轉成大寫。在Visual模式和Normal模式下都能生效。 注意,只有tiledeop設置後,這個才能成爲一個操作命令,纔可用該命令與其他光標移動的命令組合使用。

       g~        修改選中的字符的大小寫操作命令,原來大寫的轉換成小寫,原來小寫的轉成大寫。

       gu        修改選中的字符爲小寫操作命令。

       gU       修改選中的字符爲大寫操作命令。

        !           過濾警告操作命令

        gq      選中文本格式化,文本拼接組合成句子或段落命令。在Normal模式和Visual模式下都能生效。

        >        選中文本向右Tab縮進。在Normal模式和Visual模式下都能生效。

        <         選中文本向左Tab縮進。在Normal模式和Visual模式下都能生效。

       gd      到達光標所在處函數或變量定義之處。


       塊操作命令過程: 移動到想要進行操作的位置,比如行首或行尾;按組合鍵Ctrl-v,進入塊操作模式;移動光標到任何地方,選定塊操作的範圍,比如:hjkl命令;最後輸入I(在塊的每一行首插入字符)或A(塊的每一行尾部插入)進入Insert模式,然後輸入想要插入的字符,按Esc鍵使塊的每一行同樣的位置生效。

        

        自動補全功能:在Insert模式下,輸入一個詞的開頭,然後按組合鍵Ctrl-n或Ctrl-p,就出現自動補全的提示。


        宏錄製:q + <宏> + 操作隊列 + q ,@<宏> , @@。<宏> 可以是任意單個字母(區分大小寫)或任意單個數字, q<宏> 進入recording模式,該模式下你的操作記錄會保存到寄存器<宏> 中;然後輸入@<宏>操作命令將重新執行被記錄到寄存器<宏>中的命令;@@命令跟@<宏>的作用一樣。


        可視化選擇:v,V,Ctrl-v.  v,V都可以進入Visual模式,而Ctrl-v可以進入Visual Block模式(即塊操作模式),在這兩個模式下,都可以移動光標選定編輯文本。對選定文本執行c,y,d等操作,下面有幾個常用的對選定文本的操作:

  • J:把所有行連起來變成一行。
  • >或<操作,文本向左右Tab縮進。
  • =操作:選中文本自動縮進。          
        
        分屏:
 [N]-Ctrl-w-s、[N]-ctrl-w-S或:[N]sp[lit],組合命令將Vim的屏幕高度分出一個新的具有N行的屏幕,其中[N]和[lit]選項可以不輸入。即:sp或:5split都是合法的分屏命令。
 [N]-Ctrl-w-v或:[N]vs[plit]組合命令將Vim的屏幕寬度分出一個新的具有N列的屏幕,其中[N]和[plit]選項可以不輸入,即:vs或:5vsplit都是合法的分屏命令。
 [N]-Ctrl-w-n或:[N]new 組合命令將Vim的屏幕高度分出一個新的具有N行的屏幕,並打開一個新的空文件開始編輯。
:[N]vne[w] 組合命令將Vim的屏幕寬度分出一個新的具有N列的屏幕,並打開一個新的空文件開始編輯。
:q或:q!、:close或:close!(最後一個窗口不關閉)、:hide(最後一個窗口不關閉)可以關閉當前屏幕窗口。:on[ly][!]    除了當前窗口所有其他窗口都關閉。
 Ctrl-w-w、Ctrl-w-方向鍵(包括hjkl和箭頭方向鍵),可以在多個窗口中切換。Ctrl-t(top-left窗口)、Ctrl-b(bottom-right窗口)、Ctrl-p(上一個窗口)也是常用的切換窗口命令。
 Ctrl-w-r、 Ctrl-w-R、 Ctrl-w-x、 Ctrl-w-J\H\K\L\T等可以改變窗口的佈局。
 Ctrl-w-+(增加尺寸)、 Ctrl-w--(減少尺寸)增加或減少當前窗口屏幕尺寸。Ctrl-w-_(豎屏最大化)、Ctrl-w-| (橫屏最大化)用來最大化當前分窗口屏幕。

    
           自己配置不同的語言函數自動補全的步驟:
           創建~/.vim/dict     目錄, 然後創建包含各種語言函數列表的txt文件;最後在~/.gvimrc文件加入如下命令:
[html] view plaincopy
  1. au FileType cpp setlocal dict+=~/.vim/dict/cpp_function_list.txt  

       (19)菜單快捷鍵

         編輯菜單:

         Undo   快捷鍵  command+z

         Redo  快捷鍵 shift+command+z

         Cut    快捷鍵 command+x (剪切的文本可以粘貼於其他程序或vim)

         Copy 快捷鍵 command+c  (複製的文本可以粘貼於其他程序或vim)

         Paste 快捷鍵 command+v 

         Select All 快捷鍵 command+a


         文件菜單:

         New window  快捷鍵 Command+n

         New  Tab 快捷鍵 Command+t

         Open New File  快捷鍵愛你 Command+o

         Save 快捷鍵 Command+s 

         Save as 快捷鍵 shifit+Command+s

         Close window 快捷鍵 Shift+Command+w

         Close   快捷鍵 Command+w

 

5、最後貼出本人的~/.vimrc和~/.gvimrc配置:

    ~/.vimrc配置如下:

[html] view plaincopy
  1. " An example for a vimrc file.一般設置cli相關設置,即命令行相關設置,插件相關設置。原因加載順序是先讀取vimrc配置,然後讀取plugin插件,然後加載GUI,最後再讀取gvimrc配置文件。所以,GUI以及快捷鍵一般放到gvimrc裏設置,有時候在vimrc設置跟界面顯示相關的沒作用,要在gvimrc裏設置纔有用。vimrc配置是vim,gvimrc配置文件是gvim,如果想要vim也有配色等,可以將界面相關的設置放在vimrc文件裏重新設置一下。  
  2.    
  3. "-------------------------------------------------------------------------------  
  4. "           基本設置  
  5. "-------------------------------------------------------------------------------  
  6. " When started as "evim", evim.vim will already have done these settings.  
  7. if v:progname =~? "evim"  
  8.   finish  
  9. endif   
  10.   
  11. "啓用Vim的特性,而不是Vi的(必須放到配置的最前邊)  
  12. set nocompatible  
  13.   
  14. " 設置編碼    
  15. set encoding=utf-8    
  16. set fenc=utf-8    
  17. set fileencodings=ucs-bom,utf-8,cp936,gb2312,gb18030,big5   
  18.    
  19. "顯示行號  
  20. set number  
  21.   
  22. "設置默認打開窗口大小  
  23. set lines=70 columns=100  
  24.   
  25. "設置窗口透明度  
  26. set transparency=10  
  27.   
  28. "設置背景色  
  29. "set bg=dark  
  30.   
  31. "用 koehler 調色板  
  32. colorscheme koehler  
  33.   
  34. "隱藏工具欄和滑動條  
  35. set guioptions=aAce      
  36.             
  37. "設置標籤欄  
  38. "最多30個標籤  
  39. set tabpagemax=30   
  40. "顯示標籤欄    
  41. set showtabline=2     
  42.        
  43.   
  44. "設定文件瀏覽器目錄爲當前目錄  
  45. "set bsdir=buffer  
  46. "set autochdir  
  47.   
  48. "保存100條命令歷史記錄  
  49. set history=100   
  50.       
  51. "總是在窗口右下角顯示光標的位置  
  52. set ruler     
  53.       
  54. "在Vim窗口右下角顯示未完成的命令   
  55. set showcmd           
  56.   
  57. " 啓用鼠標  
  58. if has('mouse')  
  59.   set mouse=a  
  60. endif  
  61.   
  62. "設置語法高亮  
  63. if &t_Co > 2 || has("gui_running")  
  64. syntax on  
  65. endif  
  66.   
  67.   
  68. "-------------------------------------------------------------------------------  
  69. "           文本操作設置  
  70. "-------------------------------------------------------------------------------  
  71. "設置字體  
  72. set gfn=Courier:h15  
  73.   
  74. "設置自動縮進  
  75. "設置智能縮進  
  76. set tabstop=4  
  77. set shiftwidth=4  
  78. set softtabstop=4  
  79. set expandtab  
  80. set smarttab  
  81.   
  82.   
  83. "設置Tab鍵跟行尾符顯示出來  
  84. set list lcs=tab:>-,trail:-  
  85.   
  86. "設置自動換行  
  87. set wrap  
  88.   
  89. "設置Insert模式和Normal模式下Left和Right箭頭鍵左右移動可以超出當前行  
  90. set whichwrap=b,s,<,>,[,]  
  91.   
  92. "設置光標移動到屏幕之外時,自動向右滾動10個字符  
  93. set sidescroll=10  
  94.   
  95.   
  96.   
  97.   
  98.   
  99.   
  100. "設置使~命令成爲操作符命令,從而使~命令可以跟光標移動命令組合使用  
  101. set tildeop  
  102.   
  103. "在Insert模式下,設置Backspace鍵如何刪除光標前邊的字符。這裏三個值分別表示空白字符,分行符和插入模式之前的字符。  
  104. set backspace=indent,eol,start  
  105.   
  106. "定義鍵映射,不使用Q命令啓動Ex模式,令Q命令完成gq命令的功能---即文本格式化。  
  107. map Q gq  
  108.   
  109. " CTRL-U 在Insert模式下可以刪除當前光標所在行所在列之前的所有字符.  Insert模式下,在Enter換行之後,可以立即使用CTRL-U命令刪除換行符。  
  110. inoremap <C-U> <C-G>u<C-U>  
  111.   
  112. "使 "p" 命令在Visual模式下用拷貝的字符覆蓋被選中的字符。  
  113. vnoremap p <Esc>:let current_reg = @"<CR>gvs<C-R>=current_reg<CR><Esc>  
  114.   
  115.   
  116. "-------------------------------------------------------------------------------  
  117. "           搜索設置  
  118. "-------------------------------------------------------------------------------  
  119. "打開搜索高亮  
  120. set hlsearch  
  121.   
  122. "忽略大小寫  
  123. set ignorecase  
  124.   
  125. "在查找時輸入字符過程中就高亮顯示匹配點。然後回車跳到該匹配點。  
  126. set incsearch     
  127.   
  128. "設置查找到文件尾部後折返開頭或查找到開頭後折返尾部。  
  129. set wrapscan  
  130.   
  131.   
  132.   
  133. "-------------------------------------------------------------------------------  
  134. "           文件設置  
  135. "-------------------------------------------------------------------------------  
  136.   
  137. "設置當Vim覆蓋一個文件的時候保持一個備份文件,但vms除外(vms會自動備份。備份文件的名稱是在原來的文件名上加上 "~" 字符  
  138. if has("vms")  
  139.   set nobackup         
  140. else  
  141.   set backup          
  142. endif  
  143.   
  144.   
  145. if has("autocmd")  
  146.   "啓用文件類型檢測並啓用文件類型相關插件,不同類型的文件需要不同的插件支持,同時加載縮進設置文件, 用於自動根據語言特點自動縮進.  
  147.   filetype plugin indent on  
  148.     
  149.   "將下面腳本命令放到自動命令分組裏,這樣可以很方便地刪除這些命令.  
  150.   augroup vimrcEx  
  151.   au! "刪除原來組的自動命令  
  152.   
  153.   "對於所有文件類型,設置textwidth爲78個字符.  
  154.   autocmd FileType text setlocal textwidth=78  
  155.   
  156.   //vim啓動後自動打開NerdTree  
  157.   autocmd vimenter * NERDTree  
  158.   autocmd vimenter * if !argc() | NERDTree | endif  
  159.   "設置關閉vim NerdTree窗口  
  160.   autocmd bufenter * if (winnr("$") == 1 && exists("b:NERDTreeType") && b:NERDTreeType == "primary") | q | endif  
  161.   
  162.   "當打開編輯文件時總是自動執行該腳本,跳轉到最後一個有效的光標位置Mark標記。當一個事件正在處理時,不執行該腳本命令。  
  163.   "行首的反斜槓用於把所有語句連接成一行,避免一行寫得太長.   
  164.   autocmd BufReadPost *  
  165.     \ if line("'\"") > 1 && line("'\"") <= line("$") |  
  166.     \   exe "normal! g`\"" |  
  167.     \ endif  
  168.   
  169.   augroup END  
  170. else  
  171.   "Enter換行時總是使用與前一行的縮進等自動縮進。  
  172.   set autoindent  
  173.   "設置智能縮進  
  174.   set smartindent         
  175. endif    
  176.   
  177.   
  178. "編輯一個文件時,你所編輯的內容沒保存的情況下,可以把現在的文件內容與編輯之前的文件內容進行對比,不同的內容將高亮顯示  
  179. if !exists(":DiffOrig")  
  180.   command DiffOrig vert new | set bt=nofile | r ++edit # | 0d_ | diffthis  
  181.           \ | wincmd p | diffthis  
  182. endif  
  183.   
  184.   
  185. "-------------------------------------------------------------------------------  
  186. "           插件設置  
  187. "-------------------------------------------------------------------------------  
  188.   
  189. "插件相關的設置  
  190. "matchit 的字符匹配自定義設置  
  191. let b:match_words = '\<if\>:\<endif\>,'  
  192.         \ . '\<while\>:\<continue\>:\<break\>:\<endwhile\>'  
  193.   
  194.   
  195.   
  196. "Vundle 的配置  
  197.   
  198. filetype off                   " required!  
  199.   
  200. set rtp+=~/.vim/bundle/vundle/  
  201. call vundle#rc()  
  202.   
  203. " let Vundle manage Vundle  
  204. " required!   
  205. "管理Vim插件   
  206. Bundle 'gmarik/vundle'   
  207.   
  208.   
  209. " My Bundles here:  
  210. " original repos on github  
  211. "文本按字符對齊  
  212. Bundle 'godlygeek/tabular'  
  213.   
  214. " vim-scripts repos  
  215. "實現“begin”/“end”類似地匹配,~/.vimrc文件中添加自定義的設置:let b:match_words = '\<if\>:\<endif\>,'  
  216.         \ . '\<while\>:\<continue\>:\<break\>:\<endwhile\>'  
  217. Bundle 'matchit.zip'       
  218. Bundle 'moria'  
  219. Bundle 'word_complete.vim'  
  220. Bundle 'SuperTab'  
  221. Bundle 'xptemplate'  
  222. Bundle 'ctags.vim'  
  223. Bundle 'taglist.vim'  
  224. Bundle 'winmanager'  
  225. Bundle 'Command-T'  
  226.   
  227. " non github repos  
  228. "Bundle 'git://git.wincent.com/command-t.git'  
  229. " ...  
  230. Bundle 'https://github.com/scrooloose/nerdtree.git'  
  231.    
  232. filetype plugin indent on     " required!  
  233. "  
  234. " Brief help  
  235. " :BundleList          - list configured bundles  
  236. " :BundleInstall(!)    - install(update) bundles  
  237. " :BundleSearch(!) foo - search(or refresh cache first) for foo  
  238. " :BundleClean(!)      - confirm(or auto-approve) removal of unused bundles  
  239. "  
  240. " see :h vundle for more details or wiki for FAQ  
  241. " NOTE: comments after Bundle command are not allowed..  



~/.gvimrc配置如下:

[html] view plaincopy
  1. " An example for a gvimrc file.一般設置GUI和快捷鍵等  
  2. "-------------------------------------------------------------------------------  
  3. "           gvimrc導入的默認設置  
  4. "-------------------------------------------------------------------------------  
  5. " 設置窗口底部命令有兩行  
  6. set ch=2  
  7.       
  8. " 輸入文本時隱藏鼠標  
  9. set mousehide         
  10.   
  11. "鍵位映射,使shift-insert快捷鍵像在 Xterm程序中一樣工作  
  12. map <S-Insert> <MiddleMouse>  "鼠標中鍵代表快捷粘貼  
  13. map! <S-Insert> <MiddleMouse>  
  14.   
  15. " Vim版本5.0或以上下面腳本工作.  
  16. if version >= 500  
  17.   
  18.   "高亮C註釋字符串  
  19.   let c_comment_strings=1  
  20.   
  21.   "如果沒啓動語法高亮,啓動語法高亮  
  22.   if !exists("syntax_on")  
  23.     syntax on  
  24.   endif  
  25.   
  26.   "啓動搜索高亮.  
  27.   set hlsearch  
  28.    
  29.   " 設置顏色  
  30.   " 文本背景爲淺灰色  
  31.   " 文本的最後一行爲深灰色  
  32.   " 光標設置成綠色, C當 ":lmap"映射激活時變成青色  
  33.   " 常量設置爲沒有底線,但常量的背景顏色淺一些  
  34.   highlight Normal guibg=grey90  
  35.   highlight Cursor guibg=Green guifg=NONE  
  36.   highlight lCursor guibg=Cyan guifg=NONE  
  37.   highlight NonText guibg=grey80  
  38.   highlight Constant gui=NONE guibg=grey95  
  39.   highlight Special gui=NONE guibg=grey95  
  40.   
  41. endif  
  42.   
  43.   
  44.   
  45.   
  46. "-------------------------------------------------------------------------------  
  47. "           基本設置  
  48. "-------------------------------------------------------------------------------  
  49. " When started as "evim", evim.vim will already have done these settings.  
  50. " 設置編碼    
  51. set encoding=utf-8    
  52. set fenc=utf-8    
  53. set fileencodings=ucs-bom,utf-8,cp936,gb2312,gb18030,big5   
  54.    
  55. "顯示行號  
  56. set number  
  57.   
  58. "設置默認打開窗口大小  
  59. set lines=70 columns=100  
  60.   
  61. "設置窗口透明度  
  62. set transparency=10  
  63.   
  64. "設置背景色  
  65. "set bg=dark  
  66.   
  67. "用 koehler 調色板  
  68. colorscheme koehler  
  69.   
  70. "隱藏工具欄和滑動條  
  71. set guioptions=aAce      
  72.             
  73. "開啓自帶的tab欄  
  74. set showtabline=2   
  75.           
  76. "總是在窗口右下角顯示光標的位置  
  77. set ruler     
  78.       
  79. "在Vim窗口右下角顯示未完成的命令   
  80. set showcmd           
  81.   
  82. "設置語法高亮  
  83. if &t_Co > 2 || has("gui_running")  
  84. syntax on  
  85. endif  
  86.   
  87.   
  88. "-------------------------------------------------------------------------------  
  89. "           文本操作設置  
  90. "-------------------------------------------------------------------------------  
  91. "設置字體  
  92. set gfn=Courier:h15  
  93.   
  94. "設置自動縮進  
  95. set tabstop=4  
  96. set shiftwidth=4  
  97. set softtabstop=4  
  98. set noexpandtab  
  99.   
  100. "設置Tab鍵跟行尾符顯示出來  
  101. set list lcs=tab:>-,trail:-  
  102.   
  103.   
  104. "設置自動換行  
  105. set wrap  
  106.   
  107. "設置光標移動到屏幕之外時,自動向右滾動10個字符  
  108. set sidescroll=10  
  109.   
  110.   
  111. "-------------------------------------------------------------------------------  
  112. "           搜索設置  
  113. "-------------------------------------------------------------------------------  
  114. "打開搜索高亮  
  115. set hlsearch  
  116.   
  117. "忽略大小寫  
  118. set ignorecase  
  119.   
  120. "在查找時輸入字符過程中就高亮顯示匹配點。然後回車跳到該匹配點。  
  121. set incsearch     
  122.   
  123. "設置查找到文件尾部後折返開頭或查找到開頭後折返尾部。  
  124. set wrapscan  
  125.   
  126.   
  127.   
  128. "-------------------------------------------------------------------------------  
  129. "           文件設置  
  130. "-------------------------------------------------------------------------------  
  131.   
  132.   
  133.   
  134. "-------------------------------------------------------------------------------  
  135. "           插件界面設置  
  136. "-------------------------------------------------------------------------------  
  137.   
  138. "ctags的設置,這裏的ctags是用MacPorts安裝的,用Vundle安裝的'ctags.vim'有問題,系統自帶的ctags也有點問題  
  139. let Tlist_Ctags_Cmd="/opt/local/bin/ctags"  
  140.   
  141. let Tlist_Exist_OnlyWindow=1 " 如果taglist窗口是最後一個窗口,則退出vim  
  142. let Tlist_Auto_Update " Update the tag list automatically  
  143.   
  144. "在vim左側顯示窗口Taglist和文件列表窗口  
  145. "let g:winManagerWindowLayout='FileExplorer,BufExplorer|TagList'  
  146. let g:winManagerWindowLayout='NERDTree, BufExplorer|TagList'  
  147. "打開vim時自動打開winmanager  
  148. let g:AutoOpenWinManager = 1  
  149. "定義打開關閉winmanager的快捷鍵  
  150. nmap wt :WMToggle<cr>  



         本文走馬觀花地帶領大家快速瀏覽了MacVIm的一些基本功能,也相當於筆者的一個學習總結。實際上,上邊談到的每一個內容都可以獨立寫成一篇博客來介紹,對於Vim的更多具體用法還需要去進行更深入的學習。寫這篇文章,筆者參考了很多資料,在這裏羅列一些出來供讀者參考。


參考資料:

vim基本命令

vim 命令(全)

手把手教你把Vim改裝成一個IDE編程環境(圖文)

把VIM打造成一個真正的IDE(3)

將Vim改造爲強大的IDE—Vim集成Ctags/Taglist/Cscope/Winmanager/NERDTree/OmniCppComplete(有圖有真相)

簡明 Vim 練級攻略

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章