ZSHプロンプトに入力された複数行式をコピー/コピーする方法は?

ZSHプロンプトに入力された複数行式をコピー/コピーする方法は?

たとえば、自分の履歴を検索して、以前に入力した複数行コマンドに達したとします。

~ >> for f in *; do
echo $f
done

vimZLE() でバインディングを有効にしたbindkey -vので、Escこの時点で入力し、vimキーストロークを使用してバイパス、行間の移動などを行うことができます。yy現在の行をインポートすることもできます。しかし、これらすべての行をコピーするための明確な方法はないようです。

どんなアイデアがありますか?

ベストアンサー1

私はこれを行う2つの(明らかに面倒な)方法を考えました。 1つ目はVimを使用すること、2つ目はUrxvtという小さなユーティリティです(これが端末エミュレータの場合)。

  • 履歴でクリックしてv現在のコマンド$EDITOR(Vim、当然)を開き、前の行Shiftvgをすべて選択して"+*クリップボードにドラッグします。

  • また、使用することができますurxvt-perlsプルや貼り付けなど、この機能(およびその他の機能)の端末機能が改善されました。この場合:AltEscape選択モードに入り、すべての行を選択してShiftvバッファ2kyドラッグしてq終了します。ShiftInsertインポートしたテキストを貼り付けます。1

Zshの行編集機能のみを使用してこれを行う簡単な方法がないと仮定すると、最初のアプローチは最も簡単なようです。2


1.これらのキーバインディングがすべて2で構成可能である~/.Xresources
ことは驚くべきことではありません。

おすすめ記事