前言
Terminus是一款优秀的免费开源的终端软件,同时支持Windows、MacOS、Linux等多种操作系统。能够兼容powershell/wsl/cygwin/git-bash/cmder/clink环境,具有集成的SSH客户端和连接管理器。有完整的Unicode支持,甚至还支持更高级的主题和配色方案自定义等功能。
从’^[[200~required text~'说起
某天使用Terminus终端,在复制文本(例如“Terminus终端”)后拷贝到终端时,发现拷贝的文本前后被加入了一些其他的字符,如下所示:
^[[200~Terminus终端~
带着一丝好奇搜索了一番,发现可能是开启了Bracketed Paste Mode导致:
Bracketed Paste Mode
对于terminal而言,它很难分清我们粘贴的文本是手动输入的还是粘贴的,这种不确定性可能导致一些异常的问题,例如Vim可能会在复制的代码段的每一行新增自动补全缩进,但是事实上代码段中已经包含了补全缩进,这样会打乱原先的代码结构(如下图所示):
当我们打开“bracketed paste mode”时,再试图去粘贴的时候,terminal会在拷贝的文本前后加入标志字符串(开头\e[200~, 末尾\e[201~),此时vim能够自动识别出来是拷贝的文本,则不会在新的行前自动补足缩进。
在Terminus终端设置Bracketed Paste Mode
打开Settings(齿轮图标):
找到Bracketed paste选项,打开开关:
版权说明
本文为原创文章,独家发布在blog.csdn.net/TracelessLe。未经个人允许不得转载。如需帮助请email至tracelessle@163.com。
参考资料
[1] Terminus
[2] arch linux - Pasting ‘required text’ into terminal emulator results in ‘^[[200~required text~’ - Super User
[3] Bracketed Paste Mode in Terminal - jdhao’s blog