使用Vim将批量将快捷方式转换为TypeAndRun的Config.ini格式

关于快速启动,我最早使用的是Win+R这种绿色的方式。但由于要记忆大量的自定义文件名,且不支持模糊查找,我改用了 Find and Run Robot (FARR)

但突然有一天,我感觉FARR实在是太慢了……

于是我改用 TypeAndRun

原来用FARR的时候,我是把一堆常用的快捷方式放在一个文件夹中,然后在FARR中将这个文件夹加入索引位置,以实现快速启动。4年多来,这个文件夹中有88个快捷方式。

现在Type And Run要求将所有的自定义别名加入到Config.ini中。一个个手动加实在是太痛苦了,我用Vim写了个脚本实现它:

 1" 获取当前路径下的所有文件
 2let s:links = glob(getcwd().'/**')
 3" 使用换行符作为分隔符,将所有路径转换成列表
 4let s:linklist = split(s:links, "\")
 5" 在列表中循环处理
 6for linkstr in s:linklist
 7    " 获取快捷方式的真实路径
 8    let s:path = resolve(linkstr)
 9    " 获取快捷方式的主文件名
10    let s:substr = matchstr(linkstr, '\w\+\.lnk')
11    " 去掉住文件名中包含的扩展名
12    let s:mainname = strpart(s:substr, 0, strlen(s:substr)-4)
13    " 按照TypeAndRun的Config.ini文件的格式插入当前缓冲区
14    exec "normal o\i".s:mainname."|".s:path
15endfor

如果希望将某个目录下的所有exe文件(包括子目录)加入Config.ini中,也只需要稍稍改一下上面的代码即可。当然,这种需求还可以使用 Total Commander 实现,更加方便。