Bash

防止bash中的多行粘貼

  • July 28, 2020

我經常使用ctrl+c從一些 gui 應用程序複製文本,然後使用滑鼠右鍵點擊菜單並將其粘貼到我的終端仿真器(終結器)中並粘貼。有時我忘記剪貼板包含幾行,當粘貼到 bash 中會導致每一行被“執行”

是否有一些解決方案可以完全防止多行粘貼?

這個答案不是最具體的使用者問題請參閱我的第二個答案。我把它留在這裡是因為它解決了更普遍的問題。

根據您對原始文章的評論,您需要 (1) 一個支持括號粘貼的終端仿真器和 (2) 對終端中執行的任何內容的相應支持,即vim, bash, zsh。支持括號粘貼的終端仿真器(列表將根據對本文的評論進行更新):

  • xterm - 自從 ??
  • gnome-terminal- 自從 ??
  • putty- 自 0.63 (2013-08-06 發布日期)

支持括號模式的應用程序:

  • vim
  • zsh

對於bash,StéphaneChazelas 編寫了一個shell 腳本,以方便檢測該模式並採取適當的措施。

如果不知道點擊粘貼時正在執行的 unix 程序,一個更具體的答案 - 防止行被切斷 - 是無法回答的。

剪貼板管理器可能是您需要的。

Bash 現在提供enable-bracketed-paste選項

enable-bracketed-paste

當設置為“開”時,Readline 將配置終端,使其能夠將每個粘貼作為單個字元串插入到編輯緩衝區中,而不是將每個字元視為已被讀取從鍵盤。這可以防止粘貼的字元被解釋為編輯命令。預設值為“關閉”。

因此,將其添加到~/.inputrc

set enable-bracketed-paste on

引用自:https://unix.stackexchange.com/questions/202732