我在 gnome 终端上遇到过这种情况,我使用 Ctrl+Insert 复制文本,使用 Shift+Insert 在终端中粘贴文本。问题是,每当我使用 shift+Insert 粘贴时,行都会直接执行,我希望能够只粘贴,并且按 Enter 键时执行行,而不是自动执行。
有人可以帮我解决这个问题吗,有没有我可以编辑的设置或类似的东西?
答案1
&&
实现此目的的另一种方法是在命令之间添加双“与”符号(而不是回车符),也可以用&&
viased
或替换所有回车符awk
。
sed
您可以通过如下命令执行此操作:
sed ':a;N;$!ba;s/\n/ \&\& /g' filename
这将为您替换所有回车符&&
。(您应该将文件名替换为您自己的文件的名称)。
并且它与无关gnome-terminal
,实际上bash
是在解释那些命令。例如在Konsole
终端中也存在同样的情况。
编辑:Zsh
没有这个问题,只有当您按下Enter
按钮时才会执行多行。因此,另一个解决方案是安装并使用,Zsh
而不是bash
在几乎(如果不是全部)Linux 发行版中作为默认 shell。
您可以通过以下方式安装
apt install zsh
并将其设置为默认值
chsh yourusername -s /usr/bin/zsh
答案2
这是一个常见问题,我曾多次遇到过。
实际上这不是 gnome 终端的一个错误,只有当你复制整行(包括不可见的回车符)时,命令才会自动执行(当你从网页或 PDF 文件复制时这种情况尤其常见)
目前我发现避免此问题的唯一方法是:
- 选择文本时要小心,选择整个文本而不要选择整行。
- 将网页或 PDF 中的文本复制到 gedit 中,然后从 gedit 复制到终端
出于同样的原因,当您复制多行代码时,除最后一行之外的所有行都将始终被执行。
如果有人知道这个问题的更好解决方案,我也想知道