ZSHに貼り付けたテキストから末尾の改行を切り捨てる

ZSHに貼り付けたテキストから末尾の改行を切り捨てる

私はレコードに改行を追加するのが好きではないので、入力する前にバックスペースキーを押す必要があることがよくあります。これを自動的に行う方法があるかどうか疑問に思います(末尾の改行を削除)。

また、時には貼り付けたコマンドを送信する前に編集する必要があるため、角かっこ貼り付けを無効にしたくありません。

コピー:

下のコードブロックを3回クリックすると、末尾の改行を含む行全体が選択されます。

cd /tmp

これをコピーしてZSHに貼り付けます。角カッコの貼り付けを無効にしないと実行されません。今履歴ファイルを見る

cat $HISTFILE | tail -3

次の内容が表示されます。

: 1646582294:0;cd /tmp\

: 1646582296:0;cat $HISTFILE | tail -3

UPキーを押すと、改行が維持されていることがわかります。

私のzshrcファイルを見つけることができますここ。私が逃したことがあれば申し訳ありません。

ベストアンサー1

bracketed-paste貼り付けたテキスト(存在する場合)から末尾の改行を削除するように、いつでもzleウィジェットをオーバーライドできます。

bracketed-paste() {
  zle .$WIDGET && LBUFFER=${LBUFFER%$'\n'}
}
zle -N bracketed-paste

おすすめ記事