node.js交互提示符粘贴内容出现字符变更甚至丢失问题
Node.js REPL复制粘贴内容字符异常解决方案
这个问题是Node.js REPL默认启用的*带括号粘贴(bracketed paste)*和自动补全功能,与终端的批量粘贴处理逻辑冲突导致。粘贴时REPL会错误将部分连续字符识别为补全触发条件,自动替换内容,才会出现粘贴结果错乱。手动输入是逐字符提交,不会触发批量粘贴的特殊处理逻辑,因此没有异常。
可按以下任意方案解决:
- 临时单次解决
进入Node REPL后先输入.editor命令进入编辑模式,再粘贴内容即可正常识别,粘贴完成后按Ctrl + D即可执行粘贴的代码。 - 启动时禁用冲突功能
启动Node时追加参数直接禁用带括号粘贴功能,启动命令为:node --no-repl-bracketed-paste - 终端层面关闭冲突特性
进入终端后先执行以下命令关闭终端的带括号粘贴模式,再启动Node REPL即可:printf "\e[?2004l" - VSCode用户永久解决
打开VSCode设置,搜索terminal.integrated.enableBracketedPaste,将该配置项的勾选取消即可。 - 全局永久生效(适用于bash/zsh等shell)
打开shell配置文件(~/.bashrc/~/.zshrc等),追加以下别名配置:
保存后执行alias node='node --no-repl-bracketed-paste'source ~/.bashrc(对应你使用的shell配置文件)即可生效,后续每次启动Node都会自动禁用冲突功能。
内容的提问来源于stack exchange,提问作者Noob
相关产品推荐
相关产品推荐

