Bashで複数行の貼り付けを防ぐ

Bashで複数行の貼り付けを防ぐ

私はしばしばctrl+c右クリックメニューを使っていくつかのGUIアプリケーションからテキストをコピーし、ターミナルエミュレータ(ターミネータ)に貼り付けます。時々、私はクリップボードに複数の行が含まれていることを忘れます。これをbashに貼り付けると、各行が「実行」されます。

複数行の貼り付けを完全に防ぐためのソリューションはありますか?

答え1

Bashは現在、以下を提供します。enable-bracketed-pasteオプション:

角かっこ貼り付けを有効にする
「On」に設定すると、Readlineは各文字をキーボードから読み取った文字として扱うのではなく、各貼り付けを単一の文字列として編集バッファに挿入するように端末を設定します。これにより、貼り付けた文字が編集コマンドとして解釈されるのを防ぎます。デフォルトは「オフ」です。

したがって、これを次に追加します~/.inputrc

set enable-bracketed-paste on

答え2

この回答は、ユーザーの質問に対する最も具体的な回答ではありません。2番目の答えを参照してください。より多くの問題を解決するので、ここに残しておきます。一般的な質問。

元の投稿のコメントによると、(1)サポートされている端末エミュレータが必要です。かっこ内に貼り付ける(2)端末で実行されているすべての項目の対応、すなわちvim。角括弧の貼り付けをサポートする端末エミュレータ(リストはこの記事のコメントに従って更新されます):bashzsh

  • xterm - から? ?
  • gnome-terminal- から? ?
  • putty- 0.63から開始(2013-08-06発売日)

ブラケットモードをサポートするアプリケーション:

  • vim
  • zsh

のためにbashStéphane Chazelasはシェルスクリプトパターンを検出し、適切な処置をとります。

貼り付けを押したときに実行していたUNIXプログラムがわからない場合は、より具体的な回答(行の切り捨てを防ぐ)に答えることはできません。

クリップボードマネージャたぶん何かが必要かもしれません。

関連情報