Totalcmd较为完美的结合gVim

一直以为我关于totalcmd和gvim的设置非常完美了,可惜今天无意中发现个问题,当在totalcmd中选中父目录按下F4使用Gvim打开的话会出现下面的错误:

E580: :endif without :if

而我预期要达到的是使用netrw浏览该目录,经过测试发现使用gvim --remote-silent D:\Downloads\的话就会出现该错误,错误根源在于结尾的反斜杠,而在totalcmd中%P参数是以反斜杠结尾的。

论坛上搜索到相关帖子:%P without backslash

管理员给的答案是"%P.",很聪明的方法,但是不适合我这个问题,我需要同时支持打开文件和目录,所以自己写了个一个ahk脚本来中转myvim.ahk:

gvim := "d:\Portable\gvim\gvim.exe"
params := "--remote-silent "

Loop, %0%
{
    param := %A_Index%
    StringRight, backslash, param, 1

    if (backslash == "\")
        StringTrimRight, param, param, 1

    params = %params% "%param%"
}
RunWait, %gvim% %params%

转换成myvim.exe放在gvim目录中,然后totalcmd中添加快捷键F4,添加新命令:

这样应该较为完美的解决两者的结合,支持打开多文件和目录,文件名带空格的文件以及单实例程序。

没有评论: