跳到主要内容

1 篇博文 含有标签「alfred」

查看所有标签

· 阅读需 3 分钟
wen

0. 背景

之前一直用Alfred 3的 snippets 功能,但是Alfred的 snippets 功能是收费的。

最近发现了RaycastRaycast的 snippets 功能是免费的,而且Raycast的 snippets 功能是开源的,可以自己写。

所以打算把Alfred的 snippets 迁移到Raycast上。

1. 迁移 Alfred 的 snippets 到 Raycast

Alfred 的 snippets 文件的格式与 Raycast 的 snippets 文件的格式不同, 所以需要先将 Alfred 的 snippets 文件转换成 Raycast 的 snippets 文件。

1.1 Get Alfred Snippets Files

打开AlfredSnippets功能,点击Export按钮,导出Alfred的 snippets 文件。 Alfred 3 的 collections 不支持批量导出,所以需要一个一个导出。🐶

img

1.2 Convert Alfred Snippets to Raycast Snippets

新建一个文件夹,把导出的 Alfred的 snippets 文件放到这个文件夹里面。

然后在这个文件夹里面新建一个 convert-alfred-snippets-to-raycast-snippets.sh 文件,内容如下:

convert-alfred-snippets-to-raycast-snippets.sh
#!/bin/sh -e
# Script for converting Alfred snippets to Raycast snippets
# Usage: chmod +x convert-alfred-snippets-to-raycast-snippets.sh; ./convert-alfred-snippets-to-raycast-snippets.sh
# NOTE: Install jq before running this script

# List up all *.alfredsnippets files and rename them to *.zip
for file in *.alfredsnippets; do
mv "$file" "${file%.alfredsnippets}.zip"
done

# Unzip all *.zip files and get the folders name
for file in *.zip; do
unzip -o "$file" # -o: overwrite existing files without prompting
done


# Merge all *.json files to one file for Raycast snippets
jq -s 'map(.alfredsnippet | {name, keyword, text: .snippet})' *.json > ./output.json

# Clean up all files except output.json
for file in *.json; do
if [ "$file" = "output.json" ]; then
continue
fi
rm "$file"
done

for file in *.zip; do
rm "$file"
done

for file in *.plist; do
rm "$file"
done

# You can now import the output.json file to Raycast

echo "Done! 🎉 You can now import the output.json file to Raycast -> Import Snippets"

也可以从 Github gist: convert-alfred-snippets-to-raycast-snippets.sh 下载。

备注

该脚本执行需要先安装jqjq是一个命令行下的JSON处理工具。

jq的 mac 的安装方法: brew install jq。 也可以参考官网

执行下面的命令:

chmod +x convert-alfred-snippets-to-raycast-snippets.sh
./convert-alfred-snippets-to-raycast-snippets.sh

会在当前文件夹生成一个 output.json 文件。

1.3 Import Raycast Snippets

打开Raycast,然后点击Import Snippets, 选择上一步生成的output.json文件,导入Raycast的 snippets。

Reference

Migrating Alfred Snippets to Raycast