私はしばしばctrl+c右クリックメニューを使っていくつかのGUIアプリケーションからテキストをコピーし、ターミナルエミュレータ(ターミネータ)に貼り付けます。時々、私はクリップボードに複数の行が含まれていることを忘れます。これをbashに貼り付けると、各行が「実行」されます。
複数行の貼り付けを完全に防ぐためのソリューションはありますか?
答え1
Bashは現在、以下を提供します。enable-bracketed-paste
オプション:
角かっこ貼り付けを有効にする
「On」に設定すると、Readlineは各文字をキーボードから読み取った文字として扱うのではなく、各貼り付けを単一の文字列として編集バッファに挿入するように端末を設定します。これにより、貼り付けた文字が編集コマンドとして解釈されるのを防ぎます。デフォルトは「オフ」です。
したがって、これを次に追加します~/.inputrc
。
set enable-bracketed-paste on
答え2
この回答は、ユーザーの質問に対する最も具体的な回答ではありません。2番目の答えを参照してください。より多くの問題を解決するので、ここに残しておきます。一般的な質問。
元の投稿のコメントによると、(1)サポートされている端末エミュレータが必要です。かっこ内に貼り付ける(2)端末で実行されているすべての項目の対応、すなわちvim
。角括弧の貼り付けをサポートする端末エミュレータ(リストはこの記事のコメントに従って更新されます):bash
zsh
xterm
- から? ?gnome-terminal
- から? ?putty
- 0.63から開始(2013-08-06発売日)
ブラケットモードをサポートするアプリケーション:
vim
zsh
のためにbash
Stéphane Chazelasはシェルスクリプトパターンを検出し、適切な処置をとります。
貼り付けを押したときに実行していたUNIXプログラムがわからない場合は、より具体的な回答(行の切り捨てを防ぐ)に答えることはできません。
ㅏクリップボードマネージャたぶん何かが必要かもしれません。