Mac开发利器之程序员编辑器MacVim学习总结

 Emacs和Vim都是程序员专用编辑器,Emacs被称为神的编辑器,Vim则是编辑器之神。至于二者到底哪一个更好用,网络上两大派系至今还争论不休。不过,相比之下,Emacs更加复杂,已经不能算是一个编辑器了,有人这么说:Emacs是假装成编辑器的操做系统。与之相反,Vim的定位很明确,就是要作一个强大的编辑器。因为笔者精力有限,决定仍是选择本身认为相对简单点的Vim来学习。所以,笔者将会在本文跟你们介绍Mac下Vim的安装以及简单使用。
          首先,Mac系统默认已经安装了Vim。打开终端,输入vim,回车。可看到以下界面,即表示Vim已经安装了。在vim里输入":q"
javascript


 

         在终端上,界面很是之简洁,若是你须要更加复杂的界面以及使用Vim更多的特性,须要下载客户端安装。在Mac上目前存在两个版本的Vim客户端:
         一、MacVim。使用Cocoa GUI,这是Mac上更新还很活跃的版本,也是Mac上最多人使用的版本。下载地址:http://code.google.com/p/macvim/
         二、使用Carbon GUI的版本,可是这个版本目前基本上再也不更新。下载地址:http://sourceforge.net/projects/macosxvim/files/
css

 

         本文主要介绍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的使用帮助介绍文档。html

 

 

        

        如今MacVime的界面仍是很简陋,下面开始介绍如何简单配置MacVim:java

        一、建立~/.bashrc文件linux

        在终端键入"cd $HOME" 和“touch .bashrc”,即建立成功。打开文件,输入“alias vim=mvim”,并保存别名变量。而后再在终端键入“source .bashrc”使.bashrc文件生效。这样,在终端输入vim和mvim均可以启动MacVim.app了。c++

        在这里稍微解释下几个文件的做用,/etc/bashrc、/etc/profile是系统全局环境变量设置,给全部用户使用,~/.bashrc、~/.bash_profile、~/.bash_login、~/.profile是用户目录下的私有变量设置。当进入系统运行一个bash shell进程时,读取环境设定过程以下:一、读取全局环境变量设置/etc/profile,而后根据其内容读取/etc/profile.d、/etc/bashrc等设定,可是注意/etc/profile只在第一次运行bash shell时读取一次,而/etc/bashrc在每次运行bash shell都读取;二、而后读取当前用户目录下的~/.bash_profile、~/.bash_login或~/.profile三个中的其中一个文件的局部变量设置,并且只在第一次运行bash shell时读取,只有读取~/.bash_profile失败才会读取~/.bash_login,若是前边两文件读取失败才会读取~/.profile;三、最后根据~/.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 。git

      2.配置~/.vimrc和~/.gvimrc程序员

      首先,在MacVim编辑器中输入“:version”,看到以下图示信息:github

     从上图能够看出一些MacVim的配置信息:shell

     $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 plain copy
 
  1. :e $VIMRUNTIME/vimrc_example.vim  
  2. :saveas ~/.vimrc  
  3. :e $VIMRUNTIME/gvimrc_example.vim  
  4. :saveas ~/.gvimrc  

 

     三、添加插件

        一般有以下两种方式添加插件:

      其一:拷贝该 plugin_name.vim插件到你我的插件目录~/.vim/plugin/下,拷贝plugin_help.txt到你我的文档目录~/.vim/doc/下,若存在该插件syntax的vim支持文件则放到~/.vim/syntax/目录下,若是以上目录不存在到终端输入以下命令建立:

 

[html]  view plain copy
 
  1.   
[html]  view plain copy
 
  1.   
[html]  view plain copy
 
  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 plain copy
 
  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 plain copy
 
  1. git clone https://github.com/gmarik/vundle.git ~/.vim/bundle/vundle  

         而后,在~/.vimrc里写入如下配置:

 

 

[html]  view plain copy
 
  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 plain copy
 
  1. :BundleSearch matchit   

 

安装新的插件:

 

[html]  view plain copy
 
  1. :BundleInstall matchit.zip  

 

  
最后在~/.vimrc中的注释" vim-scripts repos下,加入以下命令并保存.vimrc文件,这样一个插件就安装成功了:

 

[html]  view plain copy
 
  1. Bundle 'matchit.zip'  

 

更新全部安装的插件(这个命令会根据~/.vimrc的Bundle 设置来更新插件):

 

[html]  view plain copy
 
  1. :BundleInstall  

列出全部安装的插件列表:

 

 

[html]  view plain copy
 
  1. :BundleList  


清除插件命名(这个命令我测试有些插件删除不了,手动删除~/.vim/bundle的相关插件的目录,并将~/.vimrc中的相关配置去掉便可):

 

 

[html]  view plain copy
 
  1. :BundleClean   

 

上述中的Tabular插件是用于编码中的字符对齐的,关于其具体用法见连接:https://github.com/godlygeek/tabular.用法是选定一段文本,而后输入相应的命令来根据相应的字符对齐。几个经常使用的命令以下:

 

[html]  view plain copy
 
  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 plain copy
 
  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 plain copy
 
  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 plain copy
 
  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 plain copy
 
  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界面。

 

 

   四、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 plain copy
 
  1. :e! ~/.vimrc  

 

 

          保存文件: 

 

[html]  view plain copy
 
  1. :w  

 

           另存为:

 

[html]  view plain copy
 
  1. :saveas pathFile  

 

          当同时打开多个文件,在多个文件间切换命令:

 

[html]  view plain copy
 
  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 plain copy
 
  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

 

五、最后贴出本人的~/.vimrc和~/.gvimrc配置:

    ~/.vimrc配置以下:

 

[html]  view plain copy
 
  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 plain copy
 
  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 练级攻略

相关文章
相关标签/搜索