• Vi技巧:在不重启Vi的情况下重新加载snippet脚本

    日期:2011-02-24 | 分类:工具 | Tags:vim

      我想每个Vi的使用者都一定在使用着类似SnipMate 的插件,通过这个插件,我们可以轻松的通过一个Tab生成一大段常用的代码。

      最初使用SnipMate的时候,我在网上找了一些别人现成的snippet脚本来用,开始还不错,但后来觉得有一些脚本写的不符合自己的习惯,便去修改它。这样会带来一个问题:当我修改snippet脚本后,我得重启Vi后才能生效,假设现在我已经打开了3个标签页,关掉后再重启将会是多么浪费感情的事啊。于是,我便找了以下代码解决该问题

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    
    " 当修改snippet脚本后,执行,rr可重新加载脚本,无需重启Vim
    function! ReloadSnippets( snippets_dir, ft )
      if strlen( a:ft ) == 0
        let filetype = "_"
      else
        let filetype = a:ft
      endif
    
      call ResetSnippets()
      call GetSnippets( a:snippets_dir, filetype )
    endfunction
    nmap ,rr :call ReloadSnippets(snippets_dir, &filetype)

      现在,你只需要在重新加载脚本的时候按下,rr 即可。在脚本的最后一行,你可以修改nmap 后面的字符来自定义快捷键的映射。

    分享到: