midnight-commander (mc) 子 shell 中的提示不同

Prompt is different in midnight-commander (mc) subshell

第一个问题: mc 的 subshell 与 parent shell 和我的 tcsh 环境相比有不同的提示。其他的settings/variables/aliases在mc的subshell里都有,只是提示"passed"好像不对。我不知道为什么会这样。 手册页说:

An  extra  added  feature  of using the subshell is that the prompt displayed by the Midnight Commander is the same prompt that you are currently using in your shell.

背景: 我正在使用自己在本地安装的 mc.4.8.23(因为没有 root 权限)。基本上做了这两步:

./configure --prefix=<absolute path>/eda_tools/mc/mc-4.8.23/install --bindir=<absolute path>/eda_tools/mc/mc-4.8.23/bin --with-screen=ncurses
make install

mc 的其余部分工作正常。

目前我尝试过的:

有人有想法吗?

尝试将带有提示设置的 tcshrc 放在 ~/.local/share/mc/ 目录中。 我无法用 tcsh 进行验证,但是这个位置对于 mc.

中的 bash 子 shell 绝对有效(使用 bashrc)

tcsh 的提示在函数 init_subshell_precmd 中的源文件 src/subshell/common.c 中进行了硬编码。为了让您的提示重新编译 mc 并应用此补丁:

--- src/subshell/common.c.org   2019-06-16 19:49:31.041841616 +0200
+++ src/subshell/common.c       2020-01-12 14:17:03.928956667 +0100
@@ -886,7 +886,6 @@
     case SHELL_TCSH:
         g_snprintf (precmd, buff_size,
                     "set echo_style=both; "
-                    "set prompt='%%n@%%m:%%~%%# '; "
                     "alias precmd 'echo $cwd:q >>%s; kill -STOP $$'\n", tcsh_fi
         break;