VSCode实现字符串粘贴转义复制反转义
- 插件市场搜索并安装multi-command
Command+shift+P
搜索Open User Settings(JSON)
打开settings.json
并配置以下内容(用于复制反转义):
{// 其他配置..."multiCommand.commands": [{"command": "multiCommand.copyWithUnescape","sequence": ["editor.action.clipboardCopyAction","workbench.action.files.newUntitledFile","editor.action.clipboardPasteAction","editor.action.selectAll",{"command": "editor.action.insertSnippet","args": {"snippet": "${TM_SELECTED_TEXT/(\\\\\\\\)|(\\\\n)|(\\\\r)|(\\\\t)|(\\\\\")|(\\\\')/${1:+\\\\}${2:+\n}${3:+\r}${4:+\t}${5:+\"}${6:+'}/g}"}},"editor.action.selectAll","editor.action.clipboardCopyAction","undo","undo","workbench.action.closeActiveEditor"]}]
}
操作原理:
- 把当前选区复制到剪贴板(不改动原文件)。
- 新建一个 untitled 文件并切换到它。
- 把剪贴板粘贴到新文件(现在临时文件里就是原选区内容)。
- 全选临时文件内容。
- 用 snippet 对选中(即 TM_SELECTED_TEXT)做反转义替换,替换后的文本写回临时文件。
全选(反转义后)文本。- 复制反转义后的文本到剪贴板(覆盖原剪贴板)。8–9. 连续两次 undo:撤销替换与粘贴,保证临时文件回到干净未改动状态(不会变成 dirty)。
- 关闭临时文件(不会弹保存,因为已恢复为未改动),焦点回到原编辑器,原选区保持不变。
Command+shift+P
搜索Open Keyboard Shortcuts(JSON)
打开keybinding.json
并配置以下内容:
// 将键绑定放在此文件中以覆盖默认值
[// 粘贴转义字符串{"key": "cmd+shift+v","command": "editor.action.insertSnippet","when": "editorTextFocus","args": {"snippet": "${CLIPBOARD/(\\\\)|(\")|(\\n)|(\\r)|(\\t)/${1:+\\\\\\\\}${2:+\\\\\"}${3:+\\\\n}${4:+\\\\r}${5:+\\\\t}/g}"}},// 复制反转义字符串{"key": "cmd+shift+c","command": "extension.multiCommand.execute","when": "editorTextFocus && editorHasSelection","args": {"command": "multiCommand.copyWithUnescape"}},// 新前跳{"key": "cmd+[","command": "workbench.action.navigateBack"},// 去除 原前跳 快捷键位{"key": "ctrl+-","command": "-workbench.action.navigateBack"},// 新后跳{"key": "cmd+]","command": "workbench.action.navigateForward"},// 去除 原后跳 快捷键位{"key": "ctrl+shift+-","command": "-workbench.action.navigateForward"}
]