将sublime中的自定义代码片段snippet 转为vscode可用的代码片段 (cursor可用)
最近接触了ai编辑器cursor 想用起来所以有此需求 ai编辑器cursor就是用vscode封的所以和vscode通用
Sublime Text 和 VS Code 都是常用的代码编辑器之一。在 Sublime Text 中,你可以使用代码片段来快速插入常用代码块。而在 VS Code 中,你可以使用智能提示来自动补全代码片段,提高编码效率。
如果你在从 Sublime Text 转换到 VS Code,你可能会想把 Sublime Text 的代码片段迁移到 VS Code 中。为了方便起见,你无需手动创建代码片段,可以使用一个 Python 脚本来自动完成这项工作。
下面是 Python 脚本的主要步骤:
遍历 Sublime Text 的代码片段目录,解析每个代码片段文件的内容。
将每个代码片段的名称、内容和描述转换为 VS Code 所需的格式。
将所有代码片段按照 VS Code 的格式合并成一个 JSON 字符串。
将 JSON 字符串写入到 VS Code 的代码片段目录中的 all_snippets.code-snippets 文件。
这个脚本可以让你快速将 Sublime Text 的代码片段在 VS Code 中使用,并且自动生成代码片段文件,让你不用手动一个一个创建,节省了时间和精力。
import os
import re
import xmltodict
import json
sublime_snippets_dir = "/Users/**/Library/Application\ Support/Sublime\ Text\ 3/Packages/User/snippet"
vscode_snippets_dir = "/Users/**/Library/Application Support/Cursor/User/snippets"
# 如果存在目标文件则删除他
if os.path.exists(os.path.join(vscode_snippets_dir, "all_snippets.code-snippets")):
os.remove(os.path.join(vscode_snippets_dir, "all_snippets.code-snippets"))
snippets_data = {}
for root, dirs, files in os.walk(sublime_snippets_dir):
for filename in files:
if not filename.endswith(".sublime-snippet"):
continue
with open(os.path.join(root, filename), "r") as f:
snippet_content = f.read()
snippet_dict = xmltodict.parse(
snippet_content, process_namespaces=True)
name = snippet_dict["snippet"]["tabTrigger"]
content = snippet_dict["snippet"]["content"].strip()
body = [line.strip() for line in content.splitlines() if line.strip()]
body = [re.sub(r'"', "'", line) for line in body]
description = "no description yet."
snippets_data[name] = {
"prefix": name,
"body": body,
"description": description
}
# 将 snippets_data 转化成 JSON 格式字符串
snippets_str = json.dumps(snippets_data, ensure_ascii=False, indent=4)
# 将双引号替换为单引号
# snippets_str = snippets_str.replace('"', "'")
# 将 \$ 转为 $
snippets_str = snippets_str.replace('\\\$', '$')
# 写入文件
with open(os.path.join(vscode_snippets_dir, "all_snippets.code-snippets"), "w") as f:
f.write(snippets_str)
print("完成!")
请注意,你需要将 sublime_snippets_dir 和 vscode_snippets_dir 替换为实际的 Sublime Text 和 VS Code 代码片段目录的路径。此外,你还需要使用 xmltodict 库来解析 Sublime Text 代码片段文件。
总的来说,这个脚本非常实用,如果你需要在 Sublime Text 和 VS Code 之间切换,并且希望能够快速迁移代码片段,你可以试试这个脚本。
我自定义的代码块已经上传gitee了 有兴趣可以star下