7

默认情况下,Midnight Commander 中的 Ctrl-O 用于显示控制台输出。在/etc/mc/mc.keymap我设置ShowCommandLine了另一个键盘快捷键,现在 MC 对 Ctrl-O 没有反应。

同样,默认情况下,Vim 中的 Ctrl-O 用于循环浏览以前访问过的文件。在我的~/.vimrc中,我添加了map <C-o> <nop>并且,以防万一imap <C-o> <nop>。现在,如果直接从终端或 xterm 调用,Vim 也不会对 Ctrl-O 做出反应。

尽管如此,如果我从 Midnight Commander 提示符下调用 Vim,然后按 Ctrl-O,我最终会进入 Midnight Commander 的标准两面板模式,并且无法 Ctrl-O(或 Ctrl-I)退出它

当然,如果我尝试从 MC 启动一个新的 Vim 任务,它现在会告诉我“shell 已经在运行一个命令”,如果我只是想 F10 退出 MC,它会说“shell 仍然处于活动状态。退出无论如何?”,如果我这样做,它当然会在此过程中杀死 Vim。

我该如何解决这个问题?

4

1 回答 1

1

这里发生的情况是 Vim 默认捕获Ctrl+O以在跳转列表中导航回来。当你这样做时:map <C-o> <nop>,Vim 仍然会捕获Ctrl+O键序列;它只是没有做任何事情。就午夜指挥官而言,你从未按下过那些键;Vim 首先捕获输入。我不知道有什么方法可以让 Vim 停止捕获默认键序列。

于 2013-04-03T20:39:56.373 回答