Mar*_*ton 24
在终端中键入Ctrl+V不会像您预期的那样进行粘贴。默认情况下,使用Readline库的程序(例如bash)在收到下一个字符时将按字面意思处理下一个字符,而不是作为控制代码。
您需要输入Ctrl+ Shift+V来粘贴文本。这是由终端本身处理的,并且Readline只能看到粘贴的文本。
或者,至少过去是这样。
如果程序告诉终端他们理解它们,正如Readline自 Ubuntu 20.04 以来默认开始执行的那样,终端将使用粘贴括号、控制代码^[[200~和^[[201~.
猜猜当你意识到自己的错误时,如果你输入Ctrl+V并紧接着输入Ctrl+ Shift+会发生什么 。V
是的,左粘贴括号^[[200~将粘贴为文本,而不是解释为控制代码。
解决此问题的一种方法是告诉Readline忽略Ctrl+ V。为此,请将以下内容添加到您的~/.inputrc文件中(如有必要,请创建它):
"\C-v": ""
Run Code Online (Sandbox Code Playgroud)
这会覆盖默认绑定:
"\C-v": quoted-insert
Run Code Online (Sandbox Code Playgroud)
如果您出于某种原因需要使用此键,则该Insert键和Ctrl+Q仍然处于绑定状态。quoted-insert
或者,如果您现在想“括号粘贴有什么意义?” ,您可以通过添加以下内容在Readline~/.inputrc中禁用它:
set enable-bracketed-paste off
Run Code Online (Sandbox Code Playgroud)
但是,具有讽刺意味的是,括号粘贴告诉程序按字面意思处理粘贴的文本,而不是像键盘输入一样解释它。你可能喜欢也可能不喜欢这个。
例如bash,这允许您在执行多个粘贴的行之前对其进行编辑,因为只有来自键盘的换行符才会导致代码执行。
| 归档时间: |
|
| 查看次数: |
14177 次 |
| 最近记录: |