VS Code中类似Emacs的JS/TS代码即时求值功能咨询
VS Code 中类似 Emacs
eval-expression/eval-defun 的功能实现 核心表达式求值能力
VS Code 基于 JS/TS 运行环境,提供了和 Emacs eval-expression 类似的实时代码执行能力:
调试控制台(Debug Console):打开「调试」面板(快捷键
Ctrl+Shift+D)切换到「调试控制台」标签,可直接输入 JS/TS 表达式并执行,能调用完整的 VS Code API 操作编辑器、缓冲区、光标等。例如:// 在当前光标位置插入文本 vscode.window.activeTextEditor?.insertText("临时插入内容") // 获取当前选中的文本 vscode.window.activeTextEditor?.document.getText(vscode.window.activeTextEditor.selection)执行后立即生效,完全对应 Emacs 中临时执行代码完成日常操作的场景。
选中代码执行(对应
eval-defun):如果在编辑器中写了一段完整的函数或代码块,选中它后,在调试控制台右键选择「Evaluate Selection」,就能直接执行这段代码,效果和 Emacseval-defun一致。你也可以通过「键盘快捷方式」设置自定义快捷键,绑定debug.evaluateSelection命令,提升操作效率。
可执行配置替代 JSON 配置
VS Code 支持通过可执行脚本替代纯 JSON 配置,满足你偏好的动态配置需求:
- 自定义任务(Tasks):在
.vscode/tasks.json中创建类型为typescript的任务,编写可执行的 JS/TS 逻辑,例如启动时自动设置编辑器状态:{ "version": "2.0.0", "tasks": [ { "label": "初始化编辑器配置", "type": "typescript", "script": "const editor = vscode.window.activeTextEditor; if (editor) { editor.options.tabSize = 4; }", "runOptions": { "runOn": "folderOpen" } } ] } - 用户代码片段与本地脚本扩展:通过「用户代码片段」创建可复用的动态代码块,或者利用 VS Code Extension API 编写轻量的个人脚本扩展,无需打包发布,直接在本地加载使用,完全替代 Emacs 的 rc 文件逻辑。
临时高亮与编辑器动态操作
通过调试控制台执行 API 代码,可快速创建临时高亮效果:
// 创建临时高亮样式 const highlightStyle = vscode.window.createTextEditorDecorationType({ backgroundColor: "#ffeb3b", border: "1px solid #fbc02d" }); // 获取当前编辑器并应用高亮到指定范围 const editor = vscode.window.activeTextEditor; if (editor) { // 高亮第2行到第4行的全部内容 const ranges = [ new vscode.Range(1, 0, 1, editor.document.lineAt(1).text.length), new vscode.Range(2, 0, 2, editor.document.lineAt(2).text.length), new vscode.Range(3, 0, 3, editor.document.lineAt(3).text.length) ]; editor.setDecorations(highlightStyle, ranges); }
执行后立即生效,关闭编辑器后高亮自动消失,和 Emacs 临时创建高亮模式的体验一致。
内容的提问来源于stack exchange,提问作者fakedrake
相关产品推荐
相关产品推荐

