Skip to content
| Marketplace
Sign in
Visual Studio Code>Snippets>Smart Text ReplacerNew to Visual Studio Code? Get it now.
Smart Text Replacer

Smart Text Replacer

monzaid

| (0) | Free
智能文本替换插件,支持基于规则的代码模板展开
Installation
Launch VS Code Quick Open (Ctrl+P), paste the following command, and press enter.
Copied to clipboard
More Info

Smart Text Replacer

一个强大的VSCode插件,支持基于规则的智能文本替换和代码模板展开。

🚀 核心特性

智能匹配系统

  • 🎯 多种匹配模式: 支持13种匹配模式,从基础文本到复杂自定义规则
  • 📋 匹配策略: 支持局部替换(local)和整体替换(whole)两种策略模式
  • 🔄 匹配顺序: 支持从左到右(ltr)和从右到左(rtl)的参数匹配顺序
  • 🚫 字符处理策略: 不匹配字符可选择保留(retain)或删除(remove)
  • 🔗 链式替换策略: 支持重新匹配(rematch)、覆盖(cover)、填充(fillin)三种链式处理方式
  • 📍 匹配前缀: 支持自定义匹配前缀,实现精确的参数定位
  • 🔄 自定义处理器: 支持JavaScript处理器和正则表达式处理器的自定义匹配逻辑
  • 📏 参数数量控制: 支持最大/最小参数数量限制,确保匹配精度
  • 🎨 大小写控制: 可配置匹配时是否忽略大小写,适应不同编程规范

配置系统

  • 🔧 三级配置覆盖: 全局 → 语言 → 规则的层级配置系统
  • 🌐 多配置管理: 支持本地、远程URL和新建多种配置文件来源,配置文件的版本管理和回滚功能
  • ⚡ 配置缓存: 智能配置缓存和预加载机制

处理引擎

  • 🔒 JavaScript沙箱: 基于vm2的安全JavaScript处理器,支持复杂逻辑
  • 📝 模板系统: 支持$1、$-1、${n:default}等参数引用和$cursor光标定位
  • 🎨 多光标支持: 支持多光标位置的同时编辑
  • 🔄 参数处理: 支持参数数量限制、匹配顺序控制等高级功能

📦 安装

从VSCode扩展市场安装

  1. 打开VSCode
  2. 按 Ctrl+Shift+X 打开扩展面板
  3. 搜索 "Smart Text Replacer"
  4. 点击安装并重启VSCode

从VSIX文件安装

code --install-extension smart-text-replacer-1.0.0.vsix

🎯 快速开始

基本使用流程

  1. 在支持的语言文件中输入触发文本
  2. 按 Ctrl+Tab 触发智能替换
  3. 插件自动匹配规则并展开文本

使用效果展示示例

// 基础容器声明(支持不同的入参)
// 输入: int cache.map
// 输入: string int word_count.map
// 按 Ctrl+Tab
// 展开为: 
std::unordered_map<int, int> cache;
std::unordered_map<string, int> word_count;


// for循环生成(支持指定光标位置)
// 输入: i 10.for
// 按 Ctrl+Tab
// 展开为: 
for (int i = 0; i < 10; ++i) {
    // 光标在这里
}

// 链式替换
// 输入: str1 str2.strcmp.if
// 按 Ctrl+Tab
// 展开为: 
if (strcmp(str1, str2) == 0) {
    // 光标在这里
}

⚙️ 配置系统

类型定义详解

匹配模式 (MatchMode)

模式 说明 示例
word 提取单词(字母数字下划线) hello world → ["hello", "world"]
total 整个字符串作为一个参数 hello world → ["hello world"]
number 提取所有数字 abc123def456 → ["123", "456"]
punctuation 提取标点符号 hello, world! → [",", "!"]
nonSpaceString 按空格分割 a b c → ["a", "b", "c"]
char 提取所有字符 abc → ["a", "b", "c"]
numberChar 提取所有数字字符 1 23 → ["1", "2", "3"]
nonSpaceChar 提取所有非空白字符 a b c → ["a", "b", "c"]
sentence 提取句子 Hello. World! → ["Hello.", "World!"]
url 提取URL链接 Visit https://example.com → ["https://example.com"]
englishChar 提取英文字符 Hello世界 → ["H", "e", "l", "l", "o"]
chineseChar 提取中文字符 Hello世界 → ["世", "界"]
email 提取邮箱地址 Contact user@example.com → ["user@example.com"]
phone 提取电话号码 Call 123-456-7890 → ["123-456-7890"]
custom 自定义正则或JS处理器 用户定义

匹配策略 (MatchStrategy)

策略 说明 应用场景
local 局部替换,每个匹配参数单独处理 需要对每个参数分别应用替换规则
whole 整体替换,所有参数作为一组处理 需要综合考虑所有参数的替换逻辑

匹配顺序 (MatchOrder)

顺序 说明 使用场景
ltr 从左到右匹配参数 按参数出现顺序处理
rtl 从右到左匹配参数 优先处理后出现的参数

不匹配字符处理策略 (MismatchCharStrategy)

策略 说明 效果
retain 保留不匹配的字符 保持原文本中不符合匹配模式的部分
remove 删除不匹配的字符 移除不符合匹配模式的字符

链式替换策略 (ChainReplaceStrategy)

策略 说明 处理方式
rematch 重新匹配 使用替换结果重新进行规则匹配
cover 覆盖模式 将前一次替换结果作为单一参数
fillin 填充模式 在原有参数基础上填充新的替换结果

触发模式 (TriggerMode) 待实现

模式 说明 激活方式
manual 手动触发 需要按快捷键或执行命令触发
auto 自动触发 输入触发符号后自动激活

模板语法

  • $1, $2, ...: 正向参数引用(从左到右)
  • $-1, $-2, ...: 反向参数引用(从右到左)
  • ${n:default}: 带默认值的参数引用
  • $cursor: 光标位置标记(支持多个)

高级配置选项

参数控制

rules:
  - name: "example"
    match_order: "rtl"          # 匹配顺序:ltr/rtl
    max_match_params: 3         # 最大参数数量
    min_match_params: 1         # 最小参数数量

匹配策略

rules:
  - name: "example"
    match_strategy: "local"     # local: 局部替换, whole: 整体替换
    match_prefix: "@"           # 匹配前缀
    mismatch_char_strategy: "retain"  # retain: 保留, remove: 删除

链式替换

rules:
  - name: "example"
    chain_replace_strategy: "rematch"  # rematch/cover/fillin

🤝 贡献指南

欢迎提交Issue和Pull Request!

提交Issue

  • 使用清晰的标题描述问题
  • 提供复现步骤和环境信息
  • 附上相关的配置文件和日志

提交PR

  • Fork项目并创建功能分支
  • 确保所有测试通过
  • 添加必要的测试用例
  • 更新相关文档

开发规范

  • 使用TypeScript严格模式
  • 遵循ESLint规则
  • 添加适当的JSDoc注释
  • 保持代码覆盖率

🙌 敬请期待

  • 多语言混合: 支持在同一规则中混合多种编程语言
  • 智能提示: 输入时显示可用规则的智能提示,基于用户使用历史,自动调整规则优先级和推荐
  • 高亮显示: 突出显示匹配的文本和替换结果
  • 拼写纠错: 支持匹配错误时的弹窗纠正拼写问题,根据规则文本相似度
  • 触发模式: 支持trigger_mode字段手动触发(manual)和自动触发(auto)两种工作模式
  • 配置同步: 跨设备配置同步(云端存储),团队成员间的规则共享和同步
  • 统计面板: 显示使用统计、效率提升等数据
  • 语义匹配: 使用NLP技术理解代码语义,而不仅仅是字符串匹配
  • 文档生成: 自动生成规则文档和使用说明
  • 社区规则库: 用户可以分享和下载社区创建的规则,强大的规则和模板搜索功能
  • 标签系统: 规则和模板的标签分类系统
  • 多IDE支持: 扩展到IntelliJ IDEA、Sublime Text等其他编辑器

🔗 相关链接

  • GitHub仓库
  • VSCode扩展市场
  • 问题反馈

享受智能文本替换带来的高效编程体验! 🚀

  • Contact us
  • Jobs
  • Privacy
  • Manage cookies
  • Terms of use
  • Trademarks
© 2025 Microsoft