場合によっては、コマンドプロンプトで長いコマンドを入力し、実際にEnterキーを押してコマンドを実行する前に確認する必要があることがわかります。を押してctrl+c
新しいコマンドを実行し、キャンセルされたコマンドを再入力して実行します。
キャンセルしたいコマンドを「保存」ctrl+c
して「何かを確認」コマンドを完了した後に再起動する方法はありますか?
SSH経由でリモートサーバーにあるので、他の端末を開いたくありません。
大砲射撃:
$ git commit -am 'FOO-123: fix issue with dorks around bars'^C
$ git status
# On branch foo
modified: foo.php
$ git commit -am 'FOO-123: fix issue with dorks around bars'
1 file changed, 46 deletions(-)
$
答え1
Unixでは、コマンドラインエディタを使用してこれを行うことができます。私は通常、set -o emacs
コマンドラインから次のEmacsキーを直接使用できるように、次のコマンドを実行します。
- コマンドラインを見せてください
Ctrl-A
- コマンドラインの先頭に移動Ctrl-K
- コマンドライン全体を内部バッファに切り取ります。- ...ここで必要なことをすべて実行してください...
Ctrl-Y
- バッファのコマンドをコマンドラインに貼り付ける
set -o vi
ショートカットキーを使ってvi
これを行うこともできます。
答え2
私がいつもやっていることは、#
コマンドの前にコメントマークを付けることです。後で履歴からそれを覚えて、コメントマークを削除してからコマンドを実行できます。
答え3
ctrl-cを押すのではなく、行の先頭に移動して次の操作を行います。
$ history -s "git commit -am 'FOO-123: fix issue with dorks around bars'"
Enter キーを押します。実行されませんが、今のレコードの最後の行です。これがbashに固有のものかどうかはわかりません。
答え4
Goldilocksの提案と同様に、行の先頭に移動し(Emacsの動作はCtrl-Aです)、前に「#」を追加します。これにより、コマンドを実行するのではなくコメントに変換されます。コマンドを呼び出すために使用するすべてのトリック(Ctrl-Rや履歴など)を使用してコマンドを呼び出すことができます。その後、先頭に移動して#を削除できます。