在 xfce4-terminal 中复制粘贴添加 0~ 和 1~

bot*_*ius 150 xfce4-terminal

我使用 xubuntu 14.04,64 位。时不时地,当我尝试在 xfce4-terminal 中粘贴一些文本时,它不是要粘贴的预期文本,而是被0~和包围1~,例如:

0~mvn clean install1~
Run Code Online (Sandbox Code Playgroud)

文本应该是mvn clean install- 我通过将内容粘贴到其他各种应用程序(gnome-terminal、gedit 等)中来验证这一点。除 xfce4-terminal 外,每个应用程序都会正确粘贴内容。我在互联网上找不到任何参考资料(不幸的是,很难在 google.com 上搜索带有特殊字符的文本......)。为什么会发生这种情况?

rem*_*mmy 199

问题是您的终端处于括号粘贴模式,但似乎没有正确支持它。该问题已在 VTE 中修复,但 xfce4-terminal 仍在使用它的旧版本且未维护。

您可以尝试使用以下方法暂时关闭括号粘贴模式:

printf "\e[?2004l"
Run Code Online (Sandbox Code Playgroud)

  • 很好,谢谢!我已经为这个问题苦苦挣扎了一年多。是否可以完全禁用这种“括号粘贴模式”?顺便说一句,谁实施了如此疯狂的事情?;) (6认同)
  • 如果您不能总是重现它,则可能是您正在运行某些启用括号粘贴模式的程序,然后它崩溃了,因此无法在退出之前禁用它。 (4认同)
  • 这取决于您的终端。这是一个非常有用的功能,因为它让应用程序知道是否输入或粘贴了某些内容。例如,一个 IRC 程序 weechat 使用它来询问您是否要发送多行粘贴,如果没有括号粘贴模式,它就无法做到这一点,因为这样就无法知道用户是否输入了行或不是。 (4认同)
  • 对于基于 Ubuntu 的发行版,您可以尝试从 https://launchpad.net/~adrozdoff/+archive/ubuntu/vte 安装补丁版本的“vte”包 (3认同)
  • 很好的解决方案,但是当我尝试运行 `0~printf "\e[?2004l"1~` 时,它告诉我 `-bash: 0~printf: command not find`。;) (3认同)

小智 122

我的问题是由于严重关闭的 bash 会话造成的。所以reset在我的终端中运行命令立即解决了它。

  • 这对我有用。 (2认同)

iva*_*van 28

我有同样的问题,它发生在我使用 vi 之后。

通过添加set t_BE= 到我的.vimrc文件中解决了我的问题。

作为参考,这就是 t_BE 所做的:

t_BE 启用括号粘贴模式

  • 原来是这个原因,谢谢!就我而言,它是在我升级到 VIM 8 时开始的 (8认同)

egm*_*ont 10

当终端仿真器卡在括号粘贴模式时会发生此行为。

这通常发生在应用程序异常退出(崩溃或有问题)时。

另一个原因是经常发生的现象,主要是在旧版本的VTE的bug(VTE是在终端仿真窗口小部件gnome-terminal,并xfce4-terminal和更多),这是由某些工具如某些动作触发在午夜指挥官切换面板

要查看您正在运行的基于 VTE 的终端模拟器中是否修复了此错误: Execute echo -ne '\e[>c',这将插入一些字符,就像您键入它们一样。如果中间的数字是3602或更大,则上述旧的 VTE 错误不再存在。如果该数字小于该数字,则 VTE 仍会受到影响,并且会比应有的更频繁地卡在括号粘贴模式中。

要查看某个终端模拟器是否在某个 Ubuntu 发行版中得到修复,请检查它对packages.ubuntu.com 的依赖关系。libvte-2.91-0很好。libvte-2.90-9仅当该软件包的实际版本为 0.36.2 或更高版本时才好,并且libvte9是坏的。特别是,xfce4-terminal在 Xenial 中存在问题,并在 Zesty 中修复。