强大的Vim插件

本文简单介绍自己使用Vim的插件及其安装使用方法

NERDTree(功能:方便查找文件)

1.下载NERD tree 

在终端输入

wget http://www.vim.org/scripts/download_script.php?src_id=9870 -O NERDTree.zip  

下载NERDTree

2.添加.vim配置
查看~/.vim目录,如果不存在,创建此目录

3.copy NERDTree.zip to ~/.vim

4.unzip NERDTree.zip 

5.在vimrc 里面配置用快捷键打开tree代码     map <F2> :NERDTreeToggle<CR>

 

NERDTree操作介绍:

 2.1.全局命令 

  :NERDTree [ | ]

      打开一个Nerdtree,根结点由参数指定,不指定参数就是以当前目录为根结点

  :NERDTreeFromBookmark 

      打开一个Nerdtree,根结点由参数所指定的书签

  :NERDTreeToggle [ | ]

      在当前Tab中如果Nerdtree已经存在,就切换显示与隐藏;

      如果不存在,就相当于执行:NERDTree命令

  :NERDTreeMirror

      从另一个Tab中共享一个NerdTree过来(在当前Tab的Tree所作的改变也反应到原Tab中)

      如果总共只有一个Tree,就直接共享;如果不止一个,就会询问共享哪个

  :NERDTreeClose

      在当前Tab中关闭Tree

 

    2.2.书签

   在NerdTree中,书签用于标记某个感兴趣的文件或目录,比如可以用书签标记所有 Project目录

 

    2.2.1.书签表

    如果书签被激活,则显示于树状图的上方

    可以双击或用NERDTree-o来激活选中文件

    可以用NERDTree-t映射使选中文件用新Tab打开,并跳到新tab页

    可以用NERDTree-T映射使选中文件用新Tab打开,但不跳到新Tab页

 

    2.2.2.书签命令

    以下命令只在在Nerdtree的buffer中有效

    :Bookmark 

        将选中结点添加到书签列表中,并命名为name(书签名不可包含空格);

        如与现有书签重名,则覆盖现有书签。

    :BookmarkToRoot 

        以指定目录书签或文件书签的父目录作为根结点显示NerdTree

    :RevealBookmark 

        如果指定书签已经存在于当前目录树下,打开它的上层结点并选中该书签 

    :OpenBookmark 

        打开指定的文件。(参数必须是文件书签)

        如果该文件在当前的目录树下,则打开它的上层结点并选中该书签

    :ClearBookmarks []

        清除指定书签;如未指定参数,则清除所有书签

    :ClearAllBookmarks

        清除所有书签

    :ReadBookmarks

         重新读入'NERDTreeBookmarksFile'中的所有书签

 

     2.2.3.无效书签

     如果监测到无效书签,脚本就会发布一个错误消息并将无效书签置为不可用;

     无效书签将被移到书签文件的最后,在有效书签和无效书签之间有一个空行。

     书签文件中的每一行代表一个书签,格式是

     如果修正了某个无效书签,则可以重启vim或使用:ReadBookmarks命令重新读入书签信息

 

   2.3.Nerdtree 映射

   o.......在已有窗口中打开文件、目录或书签,并跳到该窗口   .....|NERDTree-o|  

   go......在已有窗口 中打开文件、目录或书签,但不跳到该窗口 .....|NERDTree-go| 

   t....... 在新Tab中打开选中文件/书签,并跳到新Tab          .....|NERDTree-t|  

   T.......在新Tab中打开选中文件/书签,但不跳到新Tab        .....|NERDTree-T|  

   i.......split 一个新窗口打开选中文件,并跳到该窗口        .....|NERDTree-i|  

   gi......split一个新窗口打开选中文件,但不跳到该窗口      .....|NERDTree-gi| 

   s.......vsp一个新窗口打开选中文件,并跳到该窗口          .....|NERDTree-s|  

   gs......vsp一个新 窗口打开选中文件,但不跳到该窗口        .....|NERDTree-gs| 

   !.......执行当前文件                                     .....|NERDTree-!|  

   O.......递归打开选中 结点下的所有目录                     .....|NERDTree-O|  

   x.......合拢选中结点的父目录                             .....|NERDTree-x|  

   X.......递归 合拢选中结点下的所有目录                     .....|NERDTree-X|  

   e.......Edit the current dif                             .....|NERDTree-e|  

 

  双击......相当于NERDTree-o

  中键......对文件相当于NERDTree-i,对目录相当于NERDTree-e

 

  D....... 删除当前书签

          

  P.......跳到根结点

  p....... 跳到父结点

  K.......跳到当前目录下同级的第一个结点

  J.......跳到当前目录下同级的最后一个结点

  ...跳到当前目录下同级的前一个结点

  ...跳到当前目录下同级的后一个结点

          

  C.......将选中目录或选中文件的父目录设为根结点

  u.......将当前根结点的父目录设为根目录,并变成合拢原根结点

  U.......将当前根结点的父目录设为根目录,但保持展开原根结点

  r.......递归刷新选中目录

  R.......递归刷新根结点

  m....... 显示文件系统菜单

  cd......将CWD设为选中目录

          

  I....... 切换是否显示隐藏文件

  f.......切换是否使用文件过滤器

  F.......切换是否显示文件

  B.......切换是否显示书签

          

  q.......关闭NerdTree窗口

  ?.......切换是否显示Quick Help

 

NERD_commenter.vim (功能:便捷注释代码)
 (1) 。 帮助手册查看
  帮助NERD_commenter。 
 (2) 。 功能
    源码文档注释。
 
 (3) 。 安装
    下载NERD_commenter压缩包,然后把解压的两个文件NERD_commenter.vim和
    NERD_commenter.txt分别放到的$ HOME / .vim /插件和的$ HOME / .vim / doc的目录中。
 
 (4) 。 使用方法
 (5) 。 使用例子
    

  • \cl,在可选的注释方式之间切换,比如C/C++ 的块注释/* */和行注释//

  • \cc,注释当前行

  • \c,切换注释/非注释状态

  • \cs,以”性感”的方式注释

  • \cA,在当前行尾添加注释符,并进入Insert模式

  • \cu,取消注释

  • Normal模式下,几乎所有命令前面都可以指定行数

  • Visual模式下执行命令,会对选中的特定区块进行注释/反注释

必须在vimrc里面添加指令    filetype plugin on 

3.snippet (功能:代码补全)(可自己定制补全)

下载snippy_bundles.vba snippy_plugin.vba 这两个东西。执行:so%即可 网址:http://www.vim.org/scripts/script.php?script_id=1318 

最后还必须到vimrc文件,找到  filetype plugin indent on去掉注释添加filetype plugin on  

详见笔记vim补全

 

4.jsbeautify.vim(js代码美化)

在usr/share/vim/vim73/plugin文件夹里面添加jsbeautify.vim

并在etc/vim目录下修改快捷键

nnoremap <f4> :call g:Jsbeautify() <CR>

let mapleader = "," (为了防止NERD_commenter不能用,可以不用配置)

可以修改opt_indext_size 改变默认缩进个数

5  surround (功能:它允许你对括号、标记、大括号等内的文字进行包裹(wrap))

下载地址 http://www.vim.org/scripts/script.php?script_id=1697

 

输入模式 normal

 

It's easiest to explain with examples. Press cs"' inside

"Hello world!" 

to change it to

'Hello world!' 

Now press cs'<q> to change it to

<q>Hello world!</q> 

To go full circle, press cst" to get

"Hello world!" 

To remove the delimiters entirely, press ds".

Hello world! 

Now with the cursor on "Hello", press ysiw] (iw is a text object).

[Hello] world! 

Let's make that braces and add some space (use } instead of { for no space): cs]{

{ Hello } world! 

Now wrap the entire line in parentheses with yssb or yss).

({ Hello } world!) 

Revert to the original text: ds{ds)

Hello world! 

Emphasize hello: ysiw<em>

<em>Hello</em> world! 

Finally, let's try out visual mode. Press a capital V (for linewise visual mode) followed by S<p class="important">.

<p class="important">  <em>Hello</em> world!</p> 

This plugin is very powerful for HTML and XML editing, a niche which currently seems underfilled in Vim land. (As opposed to HTML/XML inserting, for which many plugins are available). Adding, changing, and removing pairs of tags simultaneously is a breeze.

The . command will work with dscs, and yss if you install repeat.vim.

6.tagList(方便在类和方法之间切换)

在装taglist之前,可能需要安装 ctags (当把.vim文件放到plugin里面的时候)http://ctags.sourceforge.net/ 

配置

设置快捷键:

"<F8>打开taglist

nnoremap <silent> <F8> :TlistToggle<CR>

增强Taglist的Javascript语法识别能力

编辑~/.ctags,加入以下代码:
--langdef=Javascript
--langmap=Javascript:.js.jsm
--regex-JavaScript=/(^|^[^\/*]+[[:blank:]])([A-Za-z0-9._$]+)[[:blank:]]*[:=][[:blank:]]*new[[:blank:]]+Object\(/\2/o,object/
--regex-JavaScript=/(^|^[^\/*]+[[:blank:]])([A-Za-z0-9._$]+)[[:blank:]]*[:=][[:blank:]]*\{/\2/o,object/
--regex-JavaScript=/(^|^[^\/*]+[[:blank:]])(^[^\?][[:blank:]]*)([A-Za-z0-9_]+)[[:blank:]]*[:][[:blank:]]*[A-Za-z0-9._$'"()]+/\3/m,member/
--regex-JavaScript=/(^|^[^\/*]+[[:blank:]])([A-Za-z0-9._$]+)[[:blank:]]*[:=][[:blank:]]*new[[:blank:]]+Array\(/\2/a,array/
--regex-JavaScript=/(^|^[^\/*]+[[:blank:]])([A-Za-z0-9._$]+)[[:blank:]]*[:=][[:blank:]]*\[/\2/a,array/
--regex-JavaScript=/(^|^[^\/*]+[[:blank:]])([^! ]+[^= ]+)[[:blank:]]*=[[:blank:]]*[^""]'[^'']*/\2/s,string/
--regex-JavaScript=/(^|^[^\/*]+[[:blank:]])([A-Za-z0-9._$()]+)[[:blank:]]*[:=][[:blank:]]*function[[:blank:]]*\(/\2/f,function/
--regex-JavaScript=/(^|^[^\/*]+[[:blank:]])function[[:blank:]]+([A-Za-z0-9._$]+)[[:blank:]]*([^)])/\2/f,function/

参考网址:

http://easwy.com/blog/archives/advanced-vim-skills-taglist-plugin/

 

7.rails.vim(暂不需要使用)

 详见rails.vim文档

 

让vim更好的支持javascript的显示

参考github网址:

https://github.com/jelera/vim-javascript-syntax

 

 

哥们在网上看到的比较详细的vim插件,有适合的就拿去哈~~

相信无人不知其大名,用来提供单个源代码文件的函数列表之类的功能。最近在使用一个针对面向对象语言的类似插件-tagbar.vim,也很不错。

提供快速注释/反注释代码块的功能

添加doxygen注释

提供快速生成代码段的功能

给不同的单词高亮,表明不同的变量时很有用。(特别说明一下,vim.org上有两个Mark.vim,请使用链接中指向的那个,另外一个是有bug的)

自动生成/更新文件的作者信息(本博编写)

一个通用的语法检查插件,支持c,js,等等

用来帮助缩进对齐的插件,需要的时候会很好用

提供C++代码的自动补全功能

提供快速切换.h和.cpp文件的功能

提供实时检查python代码语法的功能(强烈推荐!)

在vim中查找python文档

优化js代码,并不是简单的缩进,而是整个优化

使%不仅能够匹配简单的<>(),还能匹配<html></html>之类标签的功能

提供快速编写xml/html的能力,如标签自动闭合等

提供展示文件/目录列表的功能,比自带的文件浏览器要好很多

提供在vim中打开终端的功能,非常有用!

提供列出配色列表的功能,就不用一个个手工去敲配色名字了

提供日历的功能,并且可以记笔记

自动检测文件编码,也可以手动选择文件编码。

提供生成数列的功能

用vim来打造个人wiki

很强大的文件查找工具,需要依赖L9

用 :w 写入文件的时候会自动创建目录

快速给单词/句子两边增加符号(包括html标签),缺点是不用用"."来重复命令,repeat.vim可以解决这个问题

用vim来查看、发布、修改、删除博客,有人优化了这个代码:VimRepress

提供outline功能,功能非常强大

提供对齐文字的功能,不同于indent插件,一旦用到就会非常方便

提供命令模式下的补全,可以补全缓冲区中出现过的单词,很好用(另一个选择是cmdline completion

在Vim中发腾讯微博(本博编写)

可以在vim中看糗事百科(本博编写,纯属娱乐~~)

可以在vim中画图,键盘控制。(还有一款插件,sketch也是画图,不过是用鼠标控制)

indent:

提供js代码的智能缩进,仅使用了他的indent功能

提供python的语法缩进,比默认的要好很多(本博修改)

syntax:

提供更好的js语法高亮

提供更好的python语法高亮

提供as代码的语法高亮

提供json的语法高亮

提供实时显示颜色的功能,如#FFFFFF

提供markdown着色功能,顺便也提供了snippet

 

posted @ 2013-03-24 21:18  Justin_lu  阅读(2479)  评论(0编辑  收藏  举报