改进两个 Vim 插件

作者:手气不错 发布时间:October 14, 2009 分类:Vim

再趁手的 Vim 插件都想力求达到自己的要求,有些插件要满意终究还得自己“二次开发”下,这两个插件希望能对您有所帮助:

MRU

MRU(Most Recently Used)插件简单的说, 就是给 Vim 增加“最近打开的文件”功能。脚本本身已经很满足我的需求,但对放到了 File 菜单的二级子菜单中,让我觉得非常的不方便。看着脚本最后更新是 2008 年, 于是自己动手做了以下的小改进:

  1. 将菜单提到根菜单上,在编辑中按 Alt+R 即可弹出 MRU 菜单
  2. 改进菜单显示样式,使其看起来更整齐,并添加文件选择快捷键(按 1-9)
  3. 增加 MRU_Filter_Not_Exists 选项,用于过滤已经不存在的文件

那么如何调用 MRU 呢?当然你可以从命令行调用

:MRU

http://files.gracecode.com/2009_11_05/19632838eb92.jpg

现在也可以使用 Alt+R 弹出菜单以后,直接按 1-9 选择最近打开的文件,如上图。

脚本下载

fontsize.vim

和现在主流的浏览器一样, fontsize.vim 的功能就是通过快捷键放大和缩小字体。 这款脚本唯一的不足就是无法支持中文(也就是没有考虑 &guifontwide 的情况),所以改 进了下。

调用此脚本的方式,下面的代码已经足可以说明

if ! hasmapto("<Plug>FontsizeInc", "n")
    nmap <silent> <Leader>++  <Plug>FontsizeInc
    nmap <silent> <Leader>==  <Plug>FontsizeInc
endif

if ! hasmapto("<Plug>FontsizeDec", "n")
    nmap <silent> <Leader>--  <Plug>FontsizeDec
endif

if ! hasmapto("<Plug>FontsizeDefault", "n")
    nmap <silent> <Leader>00  <Plug>FontsizeDefault
endif

对于 <Leader> 这个按键,在 Windows 下通常是“\”,用你的右手小指就可以找到 :^D

顺便说句,很多兄弟对 Windows 设置中文字体感到迷惑。特别是如果配置文件(_vimrc) 是 utf-8 编码的话,中文字体始终设置不上。这是因为 Windows 的内码还是使用 gbk 编 码(Windows XP 下),因此要靠 iconv 帮忙。

例如我的 _vimrc 中字体相关配置如下(类似的问题也可以举一反三) :

if has("gui_win32")
    exec 'set guifont='.iconv('Courier_New', &enc, 'gbk').':h11:cANSI'
    exec 'set guifontwide='.iconv('微软雅黑', &enc, 'gbk').':h11'
endif

脚本下载

后记:Vim 插件 FontSize 的作者采纳了我的意见,更新了脚本支持中文等多语言字符。同时从他脚本中看出他考虑得比我多得多,再次向他学习 http://www.vim.org/scripts/script.php?script_id=2809

--EOF--

已有 4 条回复

  1. jayli October 14th, 2009 at 03:28 pm #1
    jayli

    不错

  2. dexter.yy October 23rd, 2009 at 06:45 pm #2
    dexter.yy

    那个MRU要设快捷键的话,直接在vimrc加一行:nmap r :MRU 就行了罢……

  3. dexter.yy October 23rd, 2009 at 06:46 pm #3
    dexter.yy

    啊不好意思。。。忘记转尖括号了。。。

  4. llinzzi December 3rd, 2009 at 10:30 pm #4
    llinzzi

    收下了

添加新回复

Yahoo 统计