有关 gvim 新标签页打开文件的杂谈

        安装完 gvim 后,在要打开的文件上右键,会有一个 "用 Vim 编辑" 的菜单。不幸的是,99.99% 的人会对此菜单不满意。在多标签页这种体验横行于世的年代,若每开一个文件,都在新窗口打开的话,会遭人唾骂的。而 gvim 的右键菜单的功能,就是在新窗口打开文件的。不过 gvim 总算有点良心,它提供了 --remote-tab-silent 参数。下面的几种方式,将会围绕着这个参数而展开讨论。

    ◇ 利用 sendto
        此种方式,在要打开的文件上右键,有一个 "发送到" 的菜单。我们将利用此种方式来达到我们的目录。开始 -> 运行 -> sendto -> 回车,将打开 SendTo 文件夹。在这个文件夹中新建快捷方式,填入:
"D:\Program Files\Vim\vim73\gvim.exe" -p --remote-tab-silent "%*"
        OK,搞定!下次就可以在要打开的文件上右键,发送到,选择刚才的那个快捷方式,即可。注意,根据你安装的路径来修改快捷方式的路径。

    ◇ 不使用默认的 gvim.exe
        gvim 的可执行文件位于其安装目录下的 gvim.exe。只要我们不使用此可执行文件,而使用改造后的 gvim.bat 文件即可:
# gvim.bat,为了方便,可以和 gvim.exe 放在同一目录下
@echo off
start /B D:\Progra~1\Vim\vim73\gvim.exe -p --remote-tab-silent "%~f1"
exit
        这样,我们以后在要打开的文件上选择打开方式,选择 gvim.bat 即可,就可以达到在新标签页打开文件的目的了。

        注意上面的脚本中的 Progra~1,这是什么?批处理文件,其实就是执行 dos 命令。dos 对文件和目录名字的处理,采用的是 8.3 规则。即扩展名为 3 个字符,文件名部分为 8 个字符。 当多个文件或目录的前 8 个字符是一样的,怎么办呢?下面就是 dos 短文件名的规则:
  1. 符合 DOS 短文件名规则的 Windows 下的长文件名不变。
  2. 长文件名中的空格,在短文件名中被删除。
  3. 删除空格后的长文件名,若长度大于 8 个字符,则取前 6 个字符,后两个字符,其中一个为波浪线,即 ~ 字符,另外一个为数字,数字根据前 6 个字符相同的文件名的个数顺延。若个数超过 10 个则取前 5 个字符,后三个字符,其中一个为波浪线,即 ~ 字符,后两个为数字。若个数大于 100 也依此规则类推。
  4. 对使用多个 "." 隔开的长文件名,取最左端一段转换为短文件名,取最右一段前三个字符为扩展名。
    ◇ 最牛的一招:替换 gvim 默认的右键菜单
        既然 gvim 默认的右键菜单遭人唾弃,那我们就有理由将其干掉,然后做一个满足我们需求的右键菜单。首先,卸载 gvim,在卸载的过程中选择删除右键菜单,这样右键菜单就被删除。然后再重新安装 gvim,在安装的过程中,不要再安装右键菜单。当然,这只是其中一种方式来删除默认的右键菜单。如果你不想重装 gvim,可以删除注册表中的 HKEY_CLASSES_ROOT/*/shellex/ContextMenuHandlers/gvim。当然,如果你对默认的在新窗口打开的这个右键菜单情有独钟,你当然可以将其保留。
        接着,将下面的代码复制到一个文本文件,文件名后缀为 .reg。双击执行导入注册表。OK,搞定。不过这有个小问题,我们使用了 & 前导符,意在右键时,按键盘的 V 键,即相当于点击这个菜单,但试了没效果。我也搞不清楚为什么会这样。gvim 自带的右键菜单没有这个问题。
Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\*\shell\Edit with Vim(&V)]

[HKEY_CLASSES_ROOT\*\shell\Edit with Vim(&V)\command]

@="\"D:\\Program Files\\Vim\\vim73\\gvim.exe\" -p --remote-tab-silent \"%1\""


    也来点结束语
        gvim自带了一个批处理文件,可以用来添加到右键 Edit With 菜单或者 send to 发送到菜单。你会发现,gvim 完全是绿色的。事实上,凡是官方提供了便携版的软件,在安装版中也包含了绿色版的功能。打开 gvim 的安装目录,在 \Vim\vim73 中执行 install.exe,然后可以干什么,该干什么,就看你了。详细操作可以参考 http://my.oschina.net/i33/blog/43013

猜你喜欢

转载自zachary-guo.iteye.com/blog/1703120