前のコマンドを実行せずに呼び出して変更するにはどうすればよいですか?

前のコマンドを実行せずに呼び出して変更するにはどうすればよいですか?

実行せずに最後のコマンドを取得する方法を覚えていません。

!1255 コマンドにアクセスして上矢印キーを押したときにコマンドを変更したいとしましょう。それでは、コマンドラインに表示されますが、実行されずに上矢印キーを介してアクセスできるように、このコマンドを呼び出す秘密は何ですか?

エコーを追加しようとしましたが、コマンドの前にエコーがあるため、正しく実行する方法を覚えていません。

ベストアンサー1

!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'

しかし、私の履歴は(意図的に)非常に大きく、後で端末でページを後ろにスクロールするのに影響する多くの出力を取得するため、頻繁に使用しません。

おすすめ記事