我喜欢使用 Midnight Commander 和 Vim。在 Vim 中,Ctrl-O是“转到上一个位置”命令,而在 MC 中,默认情况下,它在 shell 和面板之间切换。我希望能够从 MC 调用 Vim,并使用Ctrl-O来自 Vim 的命令,而无需 MC 拦截它并将我拉回面板视图。
我创建了一个~/.config/mc/mc.keymap
包含以下内容的:
[main]
Shell =
[viewer]
Shell =
[diffviewer]
Shell =
[editor]
Shell =
这让我半途而废,因为当我使用按键调用 Vim 时,它会禁用快捷方式F4。但是,如果我从输入行将 Vim 作为 shell 程序运行,然后按Ctrl-O,MC 仍然会拦截它。
我这里缺少配置选项吗?
笔记:我不愿意做以下任何事情:
- 更改我的默认 Vim 键映射
- 更改我的首选编辑器或文件管理器
- 挖掘MC源代码,修补并重新编译
答案1
不,你没有忽视配置设置。它被硬编码在源文件中src/subshell/common.c,作为一个“可以”配置的变量,但不是:
/* The key for switching back to MC from the subshell */
/* *INDENT-OFF* */
static const char subshell_switch_key = XCTRL ('o') & 255;
仅在其中引用文件中的一处: 你注意到的情况。