時々、最近使用したコマンドシーケンスを修正してからリサイクルしたいと思います。
私が昨日処刑したと想像してみましょう。
foo 42
bar with some strange arguments
baz /my/most/beloved/folder
今日はこんなことが必要です。
foo -x 42
bar with some more strange arguments
baz /my/most/hated/folder
ctrlRand を使用してfoo
昨日のコマンドを見つけて(foo
他の状況で使用するために複数回使用できます)、それを変更して実行できます。これまでは問題ありません。しかし、今は長い検索を繰り返すことなく(実際には通常10以上のコマンド)、レコードの次の行にすばやく移動したいと思います。
コマンドは私が望むものと似ていますが、インタラクティブではありません。何十ものコマンドを実行すると、fc
そのうちの1つに予想とは異なる方法で応答する必要があります(または次のコマンドを実行すると混乱を招く可能性があります)。ksh
git
MS Windowsのシェルにはcmd
(通常迷惑な)動作があります。履歴からコマンドを実行した後、上矢印を押すと、履歴の最後のコマンドではなく、最後に実行されたコマンドに移動します。したがってfoo
、その行を再度実行した後、上矢印を押してから下矢印を押すと、その行にbar
移動します。この正確な動作は、変更されていない行を実行したときにのみ機能するため、私には役立ちません。変更すると、「履歴ポインタ」が再び終了に設定されます。ただし、レコードにそのようなブックマークを置き、その行foo
に設定してから、キーの組み合わせを使用して再びそこに移動するか、ブックマークを次の行に移動する方が良い解決策になります。
このような必要性を感じる人は私だけではないようですが、解決策を見つけることができませんでした。現在は、レコードの関連部分を印刷し、マウスを使用して次に必要な行を貼り付ける方法で解決しますが、これは不器用で、キーボードとマウスを切り替えるのが好きではありません。記録拡張を行わないでください。通常、タブ拡張を含む行を対話式に編集する必要があります。
どの解決策を知っていますか?ターゲティングするのが最善ですかzsh
?
答え1
ばかだ!他の場所で答えを得ました。私が説明した完璧な解決策はずっと前に存在していたようです。監督を続けましたが、正しい検索語が見つかりませんでした。
ctrlO現在のコマンドを実行し、履歴の次の行に移動します。
本当に素晴らしい機能です。幸いにも、その要求を読んだ20人余りの人々もこの事実を知りませんでした。