ikhr.net

Dockerコンテナで直前のコマンド履歴が表示されない

ターミナルでコマンド履歴を表示するには control + P を押します。ただDockerコンテナ内では control + P を押しても直前のコマンドが表示されず、もう一度押すと2つ前のコマンドが表示されてしまいます。直前のコマンドを再実行することが一番多そうなのでストレスです。

どうもDockerの方で control + P別の処理に割り当てられているのが原因とのこと。ターミナルを多用するツールなのに、このキーマップはあり得ない…。

上の記事の通りに ~/.docker/config.json でキーマップを変更します。

{
  "detachKeys" : "ctrl-\\"
}

jqsponge がインストールされていれば、以下のコマンドで追加できます。

$ cat ~/.docker/config.json | jq '. + {"detachKeys": "ctrl-\\\\"}' | sponge ~/.docker/config.json

jqsponge のHomebrewでのインストールは以下の通り。

$ brew install jq moreutils

...