能否使用Vim编辑AppleScript文件并纳入Git工作流管理?
能否使用Vim编辑AppleScript文件并纳入Git工作流管理?
当然可以!我身边不少用Vim的Mac开发者都这么干,完全能把AppleScript当作普通代码来管理,下面一步步给你讲怎么操作:
先解决“打开文件乱码”的问题
你在Library > Services里看到的文件是编译后的二进制格式(通常是.scpt或.scptd包),不是纯文本,所以Vim打开会显示乱码。正确的做法是:
- 打开Script Editor,把你服务里的AppleScript代码复制出来,保存成纯文本格式的文件(后缀用
.applescript),这个文件用Vim打开就是正常可读的纯文本了。 - 之后日常编辑都用这个
.applescript纯文本文件,不要直接碰编译后的服务文件。
Vim里编辑AppleScript的小技巧
- 语法高亮:Vim默认对AppleScript的支持有限,你可以装个
vim-applescript插件(直接在Vim插件管理器里搜就行),能获得完整的语法高亮和缩进支持。如果不想装插件,也可以手动在打开文件后输入:set filetype=applescript,也能启用基础的语法高亮。 - 自动识别文件类型:在你的
~/.vimrc里加一行autocmd BufNewFile,BufRead *.applescript set filetype=applescript,以后打开.applescript文件会自动启用语法高亮,不用每次手动设置。
纳入Git工作流管理
这部分和管理其他代码完全一样:
- 把你的
.applescript文件放到Git仓库里,提交、分支、合并这些操作都正常用,因为是纯文本,Git能完美追踪变更,diff的时候也能清晰看到代码修改。 - 不用担心二进制文件的版本冲突问题,纯文本的AppleScript和Python、Shell脚本一样,Git处理起来毫无压力。
从任意位置运行脚本
不需要依赖Script Editor,用系统自带的osascript命令就能直接运行:
- 在终端里输入
osascript /path/to/your/script.applescript,就能执行你的脚本。 - 嫌每次输路径麻烦?可以在Vim里映射一个快捷键,比如在
~/.vimrc里加nnoremap <leader>r :!osascript %<CR>,这样在Vim里按<leader>r(默认是反斜杠+r)就能直接运行当前编辑的脚本,调试起来超方便。
把脚本做成系统服务(如果需要)
要是你需要把维护好的纯文本脚本变回系统服务,不用打开Script Editor,用osacompile命令就能编译:
- 运行
osacompile -o MyCustomService.scpt myscript.applescript,把纯文本脚本编译成二进制的.scpt文件。 - 把编译好的
.scpt文件放到~/Library/Services目录下,重启一下系统服务或者注销再登录,就能在右键菜单里看到你的服务了。
这样你就能完全用Vim+Git来管理AppleScript,和其他代码的工作流统一起来,效率提升不少!
备注:内容来源于stack exchange,提问作者Jimmy Long
相关产品推荐
相关产品推荐

