Claude Code 在终端里默认按回车就提交消息想换行写多行提示时需要一点配置。官方提供了/terminal-setup命令但它不支持 Windows Terminal。本文记录在 Windows Terminal WSL 环境下配置 ShiftEnter 多行输入的正确姿势。踩坑过程第一反应用/terminal-setup在 Claude Code 里直接运行/terminal-setup结果被无情拒绝Terminal setup cannot be run from windows-terminal.原因很简单/terminal-setup只支持 VS Code、Cursor、Zed、Alacritty 等终端Windows Terminal 不在支持列表中。第二反应搜方案加\续行网上找到的方案是手动编辑 Windows Terminal 的settings.json在keybindings里加上{command:{action:sendInput,input:\\\n},keys:shiftenter}JSON 里\\表示一个\字符\n表示换行所以实际发送的是\ 换行配置后 ShiftEnter 确实可以换行了但每行行尾都多了一个\看着很别扭为什么每行\ 都有一个\ 多余的斜线\搞清楚这个\是什么这个\是 Claude Code 的续行符——类似 bash 里写多行命令时行尾加\表示还没写完。Claude Code 看到\ 换行就知道用户还要继续输入。但这个设计的前提是终端本身不支持真正的多行输入所以用转义字符来模拟。那 VS Code 终端里为什么没有\因为 VS Code 的终端程序能真正拦截 ShiftEnter让你在输入框里换行不用转义。灵光一闪只发换行符试试既然 Claude Code 能识别\ 换行作为续行那把\去掉只发裸换行符会不会也行毕竟 VS Code 那边也是直接换行。于是把input改成{command:{action:sendInput,input:\n},keys:shiftenter}重启 Windows Terminal再试 ShiftEnter——测试 aaa bbb没有\正常换行Claude Code 也正确识别为多行输入。最终方案打开 Windows Terminal 的settings.json路径类似%LOCALAPPDATA%\Packages\Microsoft.WindowsTerminal_*\LocalState\settings.json在keybindings数组中添加{command:{action:sendInput,input:\n},keys:shiftenter}注意Windows Terminal 运行时会自动格式化这个配置把 action 定义挪到actions数组keybindings 里只留 ID 引用。这是正常行为不用管。两种多行输入方式对比方式是否需要配置行尾是否有\适用场景ShiftEnter需要改 WT 配置无手动输入多行外部编辑器写好再粘贴不需要无大量文本输入粘贴多行文本到 Claude Code 是原生支持的完全不需要任何配置。总结Windows Terminal 用户配置\n不是\\\n即可实现 ShiftEnter 多行输入多出来的\不是 bug是续行符但其实可以省略粘贴多行文本零配置直接可用