简单说,「bracketed paste mode」指“使用转移序列标识一串字符来自拷贝”这一模式。具体的,考虑处于该模式的terminal(绝大部份都是),如果拷贝一个字符串"hello world\n"
,那么实际剪贴板的内容则是"\e[200~hello world\n\e[201~"
。进而允许程序识别来自拷贝或直接手动输入的内容。
区分拷贝内容和输入内容有时很有用:
- oh-my-zsh提供「safe-paste」插件,用于避免拷贝的命令直接被执行
- Readline (v7) and thus Bash (v4.4) 支持safe-paste,执行
echo " set enable-bracketed-paste on" >> ~/.inputrc
- 编辑器可以根据“是否是paste”来决定换行符后面是否进行自动的indent
vscode 下直接运行python片段中记录了一个忽略该因素的小问题