Linux端末では、最初に次のコマンドを入力しました。
tail -n +80 numbers.txt
私は間違いをしたことに気づき、実際に+80の代わりに+70を使いたかったので修正したかったです。これを行うには、カーソルを数字「8」に移動して「7」と入力し、「8」の前に「7」を挿入すると、結果は「780」になります。 「70」を取得するには、「8」を削除する必要があります。しかし、このプロセスは遅いようです。単に「8」を「7」に置き換えるように、1つのステップで「8」を「7」に直接変更する方法はありますか?
答え1
Bashで履歴拡張を有効にすると(デフォルトでは有効ですが、一部は無効です)、入力は置換が^old^new
適用された最後のコマンドを再実行します(略語だと思います!:s/old/new/
)。したがって、あなたの場合、コマンド^8^7
全体をナビゲートするために矢印キーを使用する必要はありません。
を入力してください新しい tail -n +70
コマンドを押した後、前のコマンドAlt.の最後の引数を挿入することは、前のコマンドを編集するよりも速くなる可能性があります。同様にtail -n +70 $_
、同じことを行う必要があります。
(より複雑な変更の場合:キーを押すと、CtrlxコマンドCtrleを編集してすぐにコミットできるデフォルトエディタ($ VISUAL)が開きます。)
答え2
bashを使用すると仮定すると、オーバーレイモードデフォルトでは無効になっており、ショートカットにはバインドされません。
オーバーレイモードを切り替えます。明示的な正の引数を使用してオーバーライドモードに切り替えます。正でない明示的な数値引数を使用すると、挿入モードに切り替わります。このコマンドは
emacs
モードにのみ影響します。vi
モードは実際には異なる方法でオーバーライドされます。各呼び出しはreadline()
挿入モードで開始されます。
self-insert
オーバーレイモードでは、テキストを右にスライドさせるのではなく、文字は必ずそのポイントのテキストを置き換えます。backward-delete-char
ドットの前の文字はスペースで置き換える必要があります。デフォルトでは、このコマンドはバインドされません。
キーバインディングを追加して有効にし、操作が完了したら再度無効にすることができますが、最善の方法は次の方法を使用することです。delete-char
代わりに、デフォルトのバインディングは次のとおりですCtrld。
その時点で文字を削除します。 [...]
カーソルが点灯している場合は、を8
押しCtrldて削除し、7と入力します。
存在するviモード、すでに8
:にいるとき<Esc>r7
。または、<Esc>F8r7
カーソルを最初の項目(行の末尾から始まる)に移動してから置き換えて、8
すべての操作を実行できます7
。