turbo console log 快捷键失效、变量名异常、日志不输出等问题,需依次排查快捷键冲突、光标位置与语言模式、console 是否被重写,并通过 json 配置自定义模板。

Turbo Console Log 插件装了但 ctrl+alt+l 没反应?检查快捷键冲突和激活范围
默认快捷键 ctrl+alt+l(Windows/Linux)或 cmd+alt+l(macOS)在很多终端、输入法或远程桌面场景下会被拦截。VSCode 本身也可能被其他插件(比如 Auto Rename Tag、Prettier)劫持了该组合键。
实操建议:
- 打开命令面板(
ctrl+shift+p),输入Preferences: Open Keyboard Shortcuts (JSON),手动添加绑定:
[
{
"key": "ctrl+alt+l",
"command": "turboConsoleLog.displayLog",
"when": "editorTextFocus && !editorReadonly"
}
]
- 确保光标落在 JS/TS/JSX/TSX 文件的**有效代码行内**(不能在注释、字符串、空行或 import 语句上)
- 插件只对
javascript、typescript、javascriptreact、typescriptreact语言模式生效,如果文件没正确识别为这些语言,右下角点击语言模式手动切换
生成的 console.log 带奇怪变量名(如 __v1)?这是作用域推导失败的信号
Turbo Console Log 会尝试提取当前光标所在表达式的变量名,但如果光标停在函数调用中间、箭头函数参数里、或解构赋值右侧,它无法准确还原原始标识符,就会 fallback 到临时名(如 __v1、__v2)。
实操建议:
- 把光标放在**完整变量名上**再触发(例如
user.name→ 光标停在user或name上,不要停在点号或括号里) - 避免在链式调用末尾直接触发(如
getData().then(...)),先把它赋给一个临时变量再操作 - 如果总是得到
__v1,说明插件未正确解析 AST —— 可尝试关闭其他语法高亮/格式化插件(尤其是那些修改编辑器 AST 的)做排查
想让日志带时间戳、文件名或上下文路径?靠插件配置 + 自定义模板
Turbo Console Log 支持通过 settings.json 自定义输出格式,但默认不开启额外字段,需要手动配置。
实操建议:
- 在用户或工作区设置中加入:
"turboConsoleLog.logTemplate": "[$time] $fileName:$lineNumber > $expressionName = $expressionValue"
- 可用变量包括:
$time(ISO 格式)、$fileName(不含路径)、$filePath(相对路径)、$lineNumber、$expressionName、$expressionValue - 注意:
$time是插件内置计算,不是 JS 的Date.now();若需毫秒级精度,得自己拼接console.timeStamp()手动补 - 模板里不要加换行或双引号,否则会导致语法错误
调试时发现日志没输出?优先排查 console 是否被重写或屏蔽
有些项目(尤其用了 React DevTools、Vue DevTools、或自定义 logger 的框架)会 monkey patch console.log,导致 Turbo Console Log 插入的语句看似执行了,实际没打印到控制台。
实操建议:
- 在浏览器控制台直接运行
console.log.toString(),看是否返回原生函数;如果是function log() { [native code] }就正常,否则已被覆盖 - 临时禁用 DevTools 扩展,或在无痕窗口测试
- 检查是否有
console.log = () => {}类似代码(常见于某些性能监控 SDK 或测试环境清理脚本) - VSCode 内置调试器的“调试控制台”和浏览器控制台是两个环境,Turbo Console Log 插入的是源码中的
console.log,它只在运行时起作用,不会影响断点调试面板里的求值











