十个必用的Vim Plugin(ZZ)

以前都用alias来干,最近被推荐FuzzyFinder,试试吧:

http://enews.url.com.tw/ossf/56275


◎ The NERD Tree

    操作Vim时,通常都在Terminal底下作用,无法像一般的GUI 
    应用程式可以以树状目录来浏览档案。The NERD Tree 
    是一将档案目录以文字模式方式绘制出来的Plugin。让使用者可以不必跳出Vim 
    编辑器而可进行档案目录的浏览、开启等动作。新版的NERD Tree 
    还另外支援了书签(Bookmark)功能,使用者可将路径节点存成书签,以便下次载入时
    直接回到该路径上。

※ 安装

    将下载回来的zip档解压缩之后,使用rsync将目录同步复制到~/.vim底下。
    复制完,NERD_tree.vim档案应该要在~/.vim/plugin/里头。

※ 使用

    :NERDTree [path|bookmark]

        可直接以NERD Tree 开启一路径,或一书签。

    :NERDTreeToggle [path|bookmark]         同上,但若NERD Tree已经被开启,则会自动关闭开NERDTree 。
        

        通常可自己在.vimrc 内map 到<leader>e 的快捷键:

            nmap <leader>e :NERDTreeToggle<CR>

        如此,按下\e 即可将NERD Tree 开启或关闭。

    :NERDTreeMirror

        此指令用于分享一个已经存在的NERD Tree Buffer,
        假设于一分页中已经开启了NERD Tree ,那么可在另外一个分页中
        将前一分页的NERD Tree Buffer同步开启于目前分页。

    :NERDTreeFind         开启NERD Tree并且找寻目前编辑的档案。         若找到目前档案则会自动将游标位置放至于该档案节点上。
        

※ NERDTree 浏览操作

    如同操作一般的Vim 文字档案一样,所有的motion 指令都可使用。

    于资料夹节点上:

        o -展开资料夹节点
        Cj -跳至下一节点
        Ck -跳至上一节点

    于档案节点:

        o -开启档案
        <Tab> -开于水平分割视窗
        t -开于分页
        T -开于分页(背景)

    其他详细资讯可参考:help NERDTree.txt

◎ Taglist

    Taglist plugin可使用ctags来产生程式码的变数、函数、类别、标头档等等资讯的索引。
    并且可以左边开启分割视窗,将这些资讯分类别显示出来,也可在Taglist Buffer内直接
    跳跃至该项目定义的位置。

※ 安装

    同NERDTree 安装方式,安装完,taglist.vim 应该要在~/.vim/plugin/ 内。

    同时你需要启用filetype 功能,请在~/.vimrc 内加上:

        filetype on

    来启用filetype 的机制。

    另外系统需要安装ctags :

    于Debian, Ubuntu 平台,可使用apt-get 安装ctags 套件:

        $ sudo apt-get install ctags

    于Mac 底下可使用MacPorts 安装ctags 套件:

        $ sudo port install ctags

※ 使用

    :TlistToggle

        对目前档案使用ctags 产生标签档(tag file),并且开启/关闭TagList 视窗。

    :TlistAddFiles {file(s)} [file(s) ...]

        加入其他档案的索引到目前的TagList 视窗。

    :TlistAddFilesRecursive {directory} [ {pattern} ]

        同上,不过可对一目录底下的所有档案做索引。

    :TlistSessionSave {filename}

        可将目前TagList 的资讯存到一特定档案内,以便于下次开启Vim 时载入回来。

    :TlistSessionLoad {filename}

        将Session 档案载入回来。

    :TlistUpdate

        更新Tag 资讯

    详细资讯请参考:help taglist.txt

◎ SnipMate

    为模仿TextMate一自动补完程式码的功能而实做的plugin。在SnipMate之前为
    SnippetsEmu ,但有Place Holder以及和Autocomplpop互相冲突的问题,SnipMate则
    改进了这项问题,并且同名称的Place Holder可以同步内容,也可反向跳跃至上一个Place 
    Holder。

※ 安装

    同上plugin 安装方法,将对应的Runtime 路径里头的档案复制到~/.vim/ 内。

    另外要注意的是,需要在~/.vimrc 内启用filetype plugin:

        filetype on 
        filetype plugin on

※ 使用

    Snipmate为不同类型的档案提供了多种程式码样板,在编辑程式时,可以由特定的关键字来延展
    该程式码样板。

    举例来说,编辑一C 程式:

        $ vim test.c

    进入insert mode ,输入"for" ,接着按下<Tab>键,此时"for"会被延展成完整的for回圈
    片段,游标会跳至第一个place holder ,输入文字后,可按下< Tab>跳至下一个place holder。

    Snippet的样板可在~/.vim/snippets内找到,该样板档案名称是以档案类型作为区别,例如: 
    c.snippets , java.snippets , javascript.snippets

    你也可以延伸自订自己的Snippet 样板,举例来说,为C 程式码撰写样板,可写:

        c-ext.snippets 
        c-cairo.snippets 
        c-x11.snippets

    那么在编辑C 程式码时,这些Snippet 都会被自动载入。

◎ FuzzyFinder

    FuzzyFinder plugin提供了一个快速搜寻档案、Buffer、书签、指令、标签的一个介面。
    搜寻时,可以即时预览搜寻结果,并且支援wildcard的模糊搜寻

※ 安装

    同上plugin 安装方法,将对应的Runtime 路径里头的档案复制到~/.vim/ 内。

※ 使用

    FuzzyFinder 提供下列命令:

        FufBuffer - Buffer mode (fuf-buffer-mode) 
        FufFile - File mode (fuf-file-mode) 
        FufDir - Directory mode (fuf-dir-mode) 
        FufMruFile - MRU-File mode (fuf-mrufile-mode) 
        FufMruCmd - MRU- Command mode (fuf-mrucmd-mode) 
        FufBookmark - Bookmark mode (fuf-bookmark-mode) 
        FufTag - Tag mode (fuf-tag-mode) 
        FufTaggedFile - Tagged-File mode (fuf-taggedfile-mode) 
        FufJumpList - Jump-List mode (fuf-jumplist-mode) 
        FufChangeList - Change-List mode (fuf-changelist-mode) 
        FufQuickfix - Quickfix mode (fuf-quickfix-mode) 
        FufLine - Line mode (fuf-line-mode) 
        FufHelp - Help mode (fuf-help -mode)

    你可将常用命令map 至快捷键,例如:

        nnoremap <leader>ff :FufFile<CR> 
        nnorempa <leader>fb :FufBuffer<CR> 
        ...

    以此类推。

    呼叫FuzzyFinder 搜寻视窗之后,操作方式如下:

        Ctrl-n , Ctrl-p上下选择项目
        Ctrl-j开启该档案到水平分割视窗
        Ctrl-k开启该档案到垂直分割视窗
        Ctrl-l开启档案至新分页

        Ctrl-\ Ctrl-\ 切换搜寻模式( fuzzy matching 或partial matching )

◎ AutoComplPop

    AutoComplPop Plugin为一可自动侦测目前程式码的语境,自动呼叫相关对应的补齐函式(Completion Function) 
    而省去手动触发补齐功能的Plugin。

    安装之后,AutoComplPop就会自动启用,输入片段程式码即可见效。
    需要注意的是,Vim的版本需要在7.2才有支援。

    安装方式同以上Plugin 。

◎ NeoComplCache

    大多数补齐函式,需要另外扫描外部档案以获得补齐资讯,耗费的时间依情况而定,但大多数补齐资讯都
    大同小异,因此NeoComplCache Plugin针对特定的样式(Pattern)所回传的补齐资讯做了快取,
    以增加补齐速度。

    安装方式同以上Plugin 。

◎ Fakeclip

    为了解决于Terminal以及GUI之间复制贴上的问题,FakeClip 
    利用了虚拟的暂存器来解决多种平台上Termianl复制文字至剪贴簿的问题。

    同时支援:

        Cygwin 
        Mac OS X 
        X Window System (使用xclip)

◎ BufExplorer

    Vim缺乏一个良好的Buffer管理介面,只能利用简单的:buffers , :[n]buf , 
    [n]bufwipe , [n]bufdo指令来做操作。

    BufExplorer提供了一个介面将所有Buffer的资讯整理出来,你也可透过该介面
    唤回、删除该Buffer。

    安装方式同以上Plugin。

◎ Surround.vim

    Surround plugin 可针对包含在文字外的括号、引号、XML 标签等等做快速的修改。

    举例来说:

    于下字串内,按下cs"' 时

    "Hello world!"

    可改为:

    'Hello world!'

    此时若按下cs'<q>

    则可改为

    <q>Hello world!</q>

    Surround plugin 也支援Visual Mode ,选择后,可使用大写S 对该区块修改包围的文字

    安装方式同以上Plugin。

◎ GSession.vim

    GSession.vim是一处理Vim Session Plugin 。一般建立Session可使用
    :mksession [filename]指令,来将目前所有的分页、开启的档案状态储存起来,在下次
    载入Vim时可以将状态唤回。但缺点就在Session File会被存在工作目录内,
    GSession可自动将Session File集中放置在~/.vim/session内,并且可以是匿名Session 
    ,也就是,你不需要花时间想Session的名称。     存Session之后,在同一个路径开启Vim时便会自己载入Session,省去输入指令再去载入的时间。
    

    若要储存为命名的Session ,载入时,也同时支援自动补齐,不需自己记住当时所存的Session 名称。

    安装方式同以上Plugin。

※ 使用

    <leader>ss 建立匿名global session file

    <leader>sS 建立匿名local session file

    <leader>se 删除目前的session file

    <leader>sE 删除所有的session file

    <leader>sn​​ 建立命名的global session file

    <leader>sl 建立命名的local session file

附录:

    以上plugin皆可使用Vimana来安装。
    Vimana为一可以侦测vim.org上plugin档案,来自动安装plugin档案之模组。

    安装Vimana :         使用cpan来安装Vimana,若是初次使用cpan,只需要采用预设的cpan设定即可。
        

        $ sudo cpan Vimana

    搜寻plugin :

        $ vimana s [keyword]

    安装plugin :

        $ vimana i [plugin name]

 

◎作者简介

Cornelius,目前在AIINK(爱印网),以Perl语言开发的Jifty web framework从事网站开发相关工作。于CPAN - Perl模组典藏网维护多个Perl模组,参与Jifty, SD等Perl相关开放原始码专案。主要以Vim做为开发工具,着有cpan.vim , perl-completion.vim , perldoc.vim等多个vim相关Plugin。 Github Twitter Plurk Blog Google group
 

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值