最後のコマンドを実行せずに取得できるトリックを思い出せません。
上矢印キーを押してコマンドを変更するときにコマンド!1255にアクセスできるようにしたいとします。それで、コマンドを呼び出すコツは何ですか?コマンドラインに表示されますが、実行されず、上矢印キーでアクセスできるようにしますか?
エコーを入れてみましたが、コマンドの前にエコーがあります。正しく実行する方法を覚えていません。
!1255:p
これを行います
!
は履歴リコールです1255
は行番号です:p
印刷するが実行しない
次に、上矢印を使用して前の(実行されていない)コマンドを元に戻し、必要に応じて変更できます。
私はよくこれをhg
( "History Grep")(私のお気に入りのエイリアス)と組み合わせます。
$ alias hg # Maybe use hgr instead if you are a Mercurial CLI user.
alias hg='history | tail -200 | grep -i'
これは、大文字と小文字に関係なく、最近の履歴行のテキストを検索し、次のように使用されます。
特定のファイルを編集するために最近のviコマンドを検索してから、それらの1つを再利用して同じファイルを編集するが、ファイル拡張子が異なる場合。
$ hg variables
6153 vi Variables/user-extensions.js
6176 vi Variables/user-extensions.js
6178 vi Variables/user-extensions.js
6190 vi Variables/user-extensions.js
6230 hg variables
$ # Notice the difference in case with V and v is ignored
$ !6190:p
vi Variables/user-extensions.js
$ ["up-arrow"]
$ vi Variables/user-extensions.[now change .js to .html]
また、履歴全体を検索するためにhga
( "History Grep All")を定義します。
$ alias hga
alias hga='history | grep -i'
しかし、履歴は(意図的に)非常に大きく、出力が多すぎて、後で端末のページをスクロールして戻るのに影響するため、あまり使用しません。
ヒッティング Ctrl + R (これは、emacsのコメント内で@gnpが動いたときの逆インクリメンタル検索キーバインディングです)、ターミナルで特定のコマンドの履歴を検索できます。コマンドが表示され、実行前に編集できます。次のようなものが表示されます。
fc
コマンドはあなたが望むことをします
fc -l <number>
は、その番号周辺のコマンド履歴を一覧表示します
fc <number>
は、そのコマンドラインエントリをvim
(またはデフォルトのエディタが私が想定しているものであれば何でも)で開くので、それを編集でき、:wq
を使用すると、上矢印。
BashではCtl+alt+e
はシェル展開を行うため、!1255
と入力してからこの組み合わせを押すと、現在の行が履歴エントリ1255の内容に置き換えられます
実行する代わりにリストを指定しながらfcコマンドを使用したい(-l)
fc -ln -1