当前位置: 首页 > article >正文

将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下


http://www.kler.cn/a/18486.html

相关文章:

  • HTMLCSS: 实现可爱的冰墩墩
  • 灵活就业,真的等同于失业吗?“三无人员”如何齐短板获贷款
  • MIT 6.S081 Lab1: Xv6 and Unix utilities翻译
  • Pencils Protocol 上线新板块 Auction,生态版图进一步完善
  • Spring Boot应用开发:从入门到精通
  • 【计算机基础——数据结构——红黑树】
  • Java笔记_17(异常、File)
  • uboot 启动内核代码分析
  • C++结构体分别在:栈空间、堆空间、静态存储区中初始化
  • 【计算机专业漫谈】【计算机系统基础学习笔记】W2-2-1 原码和移码表示
  • vue概述
  • Go数据机构----栈与队列
  • CANoe以太网配置 Network-Based Access Mode
  • 离散化(算法)
  • 卫星下行链路预算模型(未完待续)
  • JavaScript (七) -- JavaScript 事件(需要了解的事件的运用)
  • C++运算符重载
  • 可视化绘图技巧100篇分析篇(二)-生存曲线(LM曲线)(补充篇)
  • EMC VNX登录Unisphere错误 certificate has invalid date问题处理
  • DC-8通关详解
  • orin配置系统
  • api数据接口文档_接口文档示例(以1688平台API接口文档实例演示)
  • HID Relay, 有线键盘转蓝牙项目学习:记一次失败的尝试
  • 密码学:古典密码.
  • 创新驱动 共建生态|鲲鹏开发者峰会2023·GBASE南大通用技术论坛成功举办
  • Docker run命令