Dockerコンテナで直前のコマンド履歴が表示されない
ターミナルでコマンド履歴を表示するには control + P
を押します。ただDockerコンテナ内では control + P
を押しても直前のコマンドが表示されず、もう一度押すと2つ前のコマンドが表示されてしまいます。直前のコマンドを再実行することが一番多そうなのでストレスです。
どうもDockerの方で control + P
が別の処理に割り当てられているのが原因とのこと。ターミナルを多用するツールなのに、このキーマップはあり得ない…。
上の記事の通りに ~/.docker/config.json
でキーマップを変更します。
{
"detachKeys" : "ctrl-\\"
}
jq
と sponge
がインストールされていれば、以下のコマンドで追加できます。
$ cat ~/.docker/config.json | jq '. + {"detachKeys": "ctrl-\\\\"}' | sponge ~/.docker/config.json
jq
と sponge
のHomebrewでのインストールは以下の通り。
$ brew install jq moreutils