Mar*_*ter 13 command-line bash terminal-emulator x11 clipboard
我经常使用ctrl+c鼠标右键单击菜单和粘贴从某些 gui 应用程序复制文本,然后将其粘贴到我的终端模拟器(终结器)中。有时我会忘记剪贴板包含几行,当粘贴到 bash 时会导致每一行都被“执行”
是否有一些解决方案可以完全防止多行粘贴?
这个答案不是用户问题的最具体答案,请参阅我的第二个答案。我将其留在这里是因为它解决了更普遍的问题。
\n\n根据对原始帖子的评论,您需要(1)一个支持括号粘贴的终端模拟器,以及(2)对终端中运行的任何内容的相应支持,即vim
,,,,bash
。zsh
支持括号粘贴的终端模拟器(列表将根据本文的评论进行更新):
xterm
- 自从 ??gnome-terminal
- 自从 ??putty
- 自 0.63 起(2013-08-06 发布日期)支持括号模式的应用程序:
\n\nvim
zsh
对于bash
,St\xc3\xa9phaneChazelas 编写了一个shell 脚本,以方便检测该模式并采取适当的操作。
如果不知道按下粘贴时正在运行的 UNIX 程序,则无法回答更具体的答案(防止行被截断)。
\n\n剪贴板管理器也许就是您所需要的。
\nBash 现在提供了以下enable-bracketed-paste
选项:
enable-bracketed-paste
当设置为“On”时,Readline 将以某种方式配置终端,使其能够将每个粘贴作为单个字符串插入编辑缓冲区,而不是将每个字符视为已被读取从键盘。这可以防止粘贴的字符被解释为编辑命令。默认值为“关闭”。
因此,将其添加到~/.inputrc
:
set enable-bracketed-paste on
Run Code Online (Sandbox Code Playgroud)