如何让 Midnight Commander 退出到当前目录

How to make Midnight Commander exit to its current directory

我已经等量地使用 Fedora 和 Ubuntu 十多年了,我从他们安装的午夜指挥官中注意到了一个微小但令人恼火的差异。当您使用 Fedora 更改其中的目录,然后退出时,它已经为您完成了 chdir,但在 Ubuntu 中,它保留在您开始的位置。谷歌搜索在这里为旧的 Ubuntus 提出了一个解决方案:http://ptspts.blogspot.co.uk/2010/01/how-to-make-midnight-commander-exit-to.html 但在 16 上尝试失败。当我说失败时,我的意思是命令被接受而没有投诉,但它不会改变 mc 在 Ubuntu.

创建包含以下内容的可执行文件:

MC_USER=`id | sed 's/[^(]*(//;s/).*//'`
MC_PWD_FILE="${TMPDIR-/tmp}/mc-$MC_USER/mc.pwd.$$"
/usr/bin/mc -P "$MC_PWD_FILE" "$@"

if test -r "$MC_PWD_FILE"; then
        MC_PWD="`cat "$MC_PWD_FILE"`"
        if test -n "$MC_PWD" && test -d "$MC_PWD"; then
                cd "$MC_PWD"
        fi
        unset MC_PWD
fi

rm -f "$MC_PWD_FILE"
unset MC_PWD_FILE

然后定义一个指向该可执行文件的别名:

alias mc='. ~/.config/mc/exitcwd'

不要忘记应用别名:

source ~/.bashrc

此处,在文章 Use Midnight Commander like a pro 中解释了如何操作。

基本上,您必须为 mc-wrapper.sh 创建一个别名。

其他的回答都很好,但我觉得不太满意,这是我的解决方案,我认为是最简单的:

将此行放入您的 ~/.profile

alias mc='source /usr/lib/mc/mc-wrapper.sh'

简单:

mcedit ~/.profile

在文件末尾添加这一行:

alias mc='source /usr/lib/mc/mc-wrapper.sh'

键入此命令以执行更改

source ~/.profile

然后,要保存mcwindows的两边,点击MC

的顶部
Options -> Panel options -> Auto save panels setup

虽然这不完全是您问题的答案:只需使用 ctrl+o 转到 shell。它并没有真正退出 mc,但这样做的好处是您可以再次按 ctrl+o 返回到您在 mc 中的位置。

对于 Ubuntu 把这个放到 .bashrc:

alias mc='. /usr/lib/mc/mc-wrapper.sh'

然后:

source ~/.bashrc

(或重新启动控制台)

我想补充一点,这仅适用于 F10。如果您通过键入 exit 退出,路径将不会被保留。