跳到主要内容
ansicode

DECSET ?2004 — 括号粘贴模式

将粘贴文本用独立的转义标记包裹,让应用区分粘贴与键入。

字节形式

涵盖所有常见的字符串字面量写法,方便正反查找。

\\x1b[\x1b[?2004h (enable) \x1b[?2004l (disable)
\\033[\033[?2004h / \033[?2004l
\\e[\e[?2004h / \e[?2004l
ESC [ESC [ ? 2 0 0 4 h / l
hex1b 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)

示例

bash
printf '\033[?2004h'  # enable\nprintf '\033[?2004l'  # disable
python
import sys; sys.stdout.write('\x1b[?2004h')
go
fmt.Print("\x1b[?2004h")
javascript
process.stdout.write('\x1b[?2004h')
c
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
不支持

相关序列

在家族食谱中

DEC 食谱 · 4. 括号粘贴 —— `\x1b[?2004h`