这是关于 docker 的这个问题:https://github.com/docker/docker/issues/3519和https://stackoverflow.com/questions/20828657/docker-change-ctrlp-to-something-else
据我了解, docker run -it 命令打开一个交互式终端,该终端对于 Ctrl-P + Ctrl-Q 组合(与容器分离)具有特殊含义。当您在容器内时,这会扰乱 bash 和 emacs 快捷方式。我必须按 Ctrl-P 两次才能使 Ctrl-P 到达 bash 或 emacs。
有没有办法通过某种终端/bash 键绑定魔法来解决这个问题(除了重新编译 docker 本身)?
我特别想看看是否有某种方法可以通过重新映射键,按 Ctrl-J(除 Ctrl-P 之外的任何键)将被 docker 终端读取为 Ctrl-P。更重要的是,我想将 Ctrl-P 本身重新映射到其他东西,比如 Ctrl-L。因此,每当我按下 Ctrl-P 时,docker 容器都会收到 Ctrl-L。然后我可以在 docker 容器内对 bash/emacs 进行编程,将 Ctrl-L 映射到与 Ctrl-P 对应的命令(移至上一个命令/行)。
简而言之,我按下 Ctrl-P,docker 会话将其作为 Ctrl-L 接收并将其传递给 emacs,emacs 将 Ctrl-L 映射到与 Ctrl-P 对应的命令。
这是一个合理的要求吗?
如果对于原始问题有其他一些相对简单的解决方法,我会很高兴。
我正在使用 OS X 的终端应用程序。