Bash
防止bash中的多行粘貼
我經常使用
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