たとえば、自分の履歴を検索して、以前に入力した複数行コマンドに達したとします。
~ >> for f in *; do
echo $f
done
vim
ZLE() でバインディングを有効にしたbindkey -v
ので、Escこの時点で入力し、vim
キーストロークを使用してバイパス、行間の移動などを行うことができます。yy現在の行をインポートすることもできます。しかし、これらすべての行をコピーするための明確な方法はないようです。
どんなアイデアがありますか?
答え1
私はこれを行う2つの(明らかに面倒な)方法を考えました。 1つ目はVimを使用すること、2つ目はUrxvtという小さなユーティリティです(これが端末エミュレータの場合)。
履歴でクリックしてv現在のコマンド
$EDITOR
(Vim、当然)を開き、前の行Shiftvgをすべて選択して"+*クリップボードにドラッグします。また、使用することができますurxvt-perlsプルや貼り付けなど、この機能(およびその他の機能)の端末機能が改善されました。この場合:AltEscape選択モードに入り、すべての行を選択してShiftvバッファ2kにyドラッグしてq終了します。ShiftInsertインポートしたテキストを貼り付けます。1
Zshの行編集機能のみを使用してこれを行う簡単な方法がないと仮定すると、最初のアプローチは最も簡単なようです。2
1.これらのキーバインディングがすべて2で構成可能である~/.Xresources
ことは驚くべきことではありません。