Clipboard
從“剪貼板”中刪除尾隨的新行以防止在終端上執行?
有什麼方法可以通過某種過濾器執行您複製到“剪貼板”的任何內容嗎?理想情況下從您複製的內容中刪除尾隨換行符,以便它不會在終端中自動執行?
這就是我複制相關測試時的樣子,有時我會忘記這是一個新行。
良好的現代終端支持括號粘貼:當您使用終端的粘貼命令時,它會在剪貼板內容周圍發送特殊的轉義序列。如果您的 shell 支持括號粘貼,它將按原樣粘貼剪貼板內容,包括任何控製字元,特別是尾隨換行符不會觸發命令的執行。
Zsh ≥5.1 支持括號粘貼,預設開啟。可以教授舊版本。如果添加
set enable-bracketed-paste on
到.bash ≥4.4 支持括號粘貼~/.inputrc
。如果您的終端或 shell 不支持括號粘貼,您可以定義一個不帶尾隨換行符粘貼的 shell 函式。
在 zsh 中,以下命令呼叫剪貼板的內容,減去尾隨的換行符,然後將其打開以進行編輯(即使有多行):
print -z -- "`xsel -b`"
在 bash 中,您可以將剪貼板的內容減去尾隨換行符推送到歷史堆棧。在此之後,按
Up
調出命令進行編輯。history -s -- "`xsel -b`"