DECSET ?2004 — 括号粘贴模式
将粘贴文本用独立的转义标记包裹,让应用区分粘贴与键入。
字节形式
涵盖所有常见的字符串字面量写法,方便正反查找。
\\x1b[
\x1b[?2004h (enable) \x1b[?2004l (disable)\\033[
\033[?2004h / \033[?2004l\\e[
\e[?2004h / \e[?2004lESC [
ESC [ ? 2 0 0 4 h / lhex
1b 5b 3f 32 30 30 34 68 / 6c说明
启用后,系统剪贴板的每次粘贴会被 `\x1b[200~`(粘贴开始)和 `\x1b[201~`(粘贴结束)包裹后送达应用。这让 shell / 编辑器 / TUI 在消费粘贴字节时可禁用自动缩进、语法补全和快捷键绑定。现代 bash(5.1+)、zsh、fish、vim、neovim、emacs、ipython 均支持。退出时务必关闭(`?2004l`);如果粘贴出现字面 `^[[200~` 标记,通常意味着 TUI 崩溃未恢复。
规范出处: xterm-ctlseqs (Private mode 2004)
示例
printf '\033[?2004h' # enable\nprintf '\033[?2004l' # disableimport sys; sys.stdout.write('\x1b[?2004h')fmt.Print("\x1b[?2004h")process.stdout.write('\x1b[?2004h')printf("\x1b[?2004h");终端支持
- xterm
- 支持
- Linux console (fbcon)
- 不支持
- macOS Terminal.app
- 支持
- iTerm2
- 支持
- Windows Terminal
- 支持
- cmd.exe / ConPTY
- 支持
- kitty
- 支持
- alacritty
- 支持
- WezTerm
- 支持
- Ghostty
- 支持
- GNOME Terminal
- 支持
- Konsole
- 支持
- tmux
- 不支持
- GNU screen
- 不支持
| xterm | Linux console (fbcon) | macOS Terminal.app | iTerm2 | Windows Terminal | cmd.exe / ConPTY | kitty | alacritty | WezTerm | Ghostty | GNOME Terminal | Konsole | tmux | GNU screen |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 支持 | 不支持 | 支持 | 支持 | 支持 | 支持 | 支持 | 支持 | 支持 | 支持 | 支持 | 支持 | 不支持 | 不支持 |