在xfce4-terminal中复制粘贴将0〜和1〜


105

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

0~mvn clean install1~

文本应该是mvn clean install-我通过将内容粘贴到其他各种应用程序(gnome-terminal,gedit和其他应用程序)中对此进行了验证。每个应用程序都正确粘贴内容,xfce4-terminal除外。我在互联网上找不到任何参考(遗憾的是,很难在google.com上搜索带有特殊字符的文本...)。为什么会这样?


你怎么贴?中键,还是其他?
Celada

1
我尝试了每种方法:中键单击,右键单击并选择选项粘贴,Ctrl + Shift + V。当出现0〜和1〜字符时,我使用哪种粘贴方法都没有关系。
botismarius 2015年

Answers:


144

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

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

printf "\e[?2004l"

4
如果无法始终重现它,则可能是您正在运行某个启用了包围式粘贴模式的程序,然后它崩溃了,因此无法在退出前将其禁用。
kyrias 2015年

4
很好,谢谢!我已经为这个问题奋斗了一年多。是否可以完全禁用此“包围式粘贴模式”?顺便说一句,谁实施了如此疯狂的事情?;)
Adam Romanek

4
这取决于您的终端。这是一个非常有用的功能,因为它使应用程序知道是否键入或粘贴了某些内容。例如,一个IRC程序weechat使用它询问您是否要发送多行粘贴,没有括号粘贴模式就无法发送,因为那样就无法知道用户是否键入了行或不。
kyrias's

1
如何找到哪个程序与方括号粘贴模式混淆?
aviggiano

3
对于基于Ubuntu的发行版,您可以尝试从launchpad.net/~adrozdoff/+archive/ubuntu/vte
Denis Bakharev

78

我的问题是由于bash会话关闭得很糟糕。因此reset在我的终端中运行命令可以立即解决它。


2
这对我有用。
AFP_555 '18

它为我工作!
tomd

使用终止符在Ubuntu 16.04上发生了。重置成功!
user1270710

我的终结者也在做同样的事情,也正在运行Ubuntu 16.04。reset在我的ssh连接上运行修复了它。
Marcello Grechi Lins

23

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

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

作为参考,这是t_BE的作用:

t_BE启用方括号粘贴模式


7
这正是原因,谢谢!就我而言,它始于我升级到VIM 8时
rgerganov

1
您能否解释一下t_BE =设置是什么,以及为什么它可以解决问题?
弗朗切斯科·博卡多

7

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

当应用程序异常退出(崩溃或故障)时,通常会发生这种情况。

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

要查看您正在运行的基于VTE的终端仿真器中是否修复了该错误,请执行echo -ne '\e[>c'以下操作:Execute ,这将插入一些字符,就像您键入它们一样。如果中间数字3602等于或大于中间数字,则不再显示上述旧的VTE错误。如果该数目小于该数目,则VTE仍然会受到影响,并且比应有的情况更经常卡在包围式粘贴模式中。

要查看某个终端模拟器是否已在某个Ubuntu发行版中固定,请检查其对packages.ubuntu.com的依赖关系。libvte-2.91-0很好。libvte-2.90-9仅当该软件包的实际版本为0.36.2或更高版本时libvte9才是好,并且是不好的。特别xfce4-terminal是在Xenial中是越野车,在Zesty中是固定的。


1

这可能并不直接适用于您的问题,但在我看来,这种症状很可能是由我的选择编辑“ mcedit”(午夜指挥官)引起的

为了缓解错误问题,我在.bashrc文件中添加了以下功能:

### vvv 'function mcedit' is a fix-up for the ~0/~1 paste problem
function mcedit() { command mcedit $@ ; printf '\e[?2004l' ; }

然后'source .bashrc'

现在,每次执行“ mcedit”时,当我关闭以重置“托架粘贴模式”时,它将自动添加“ printf“ \ e [?2004l””

为我工作,YMMV。

可以对vi,vim,nano或任何其他行为异常的程序使用相同的方法。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.