You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Mac系统下如何让Midnight Commander退出时保留当前目录

解决MacOS Sonoma 14.3下Midnight Commander退出后保留当前目录的问题

先确认你的shell环境

MacOS Sonoma默认用的是zsh,如果你还在用bash,得先搞清楚自己的配置文件有没有被正确加载。

直接用自定义函数替代别名(亲测有效)

不管是bash还是zsh,都可以用这个方法:

针对bash用户:

  1. 打开~/.bash_profile,删掉原来的mc别名,换成这段代码:
mc() {
    local MC_PWD_FILE="/tmp/mc-$(whoami)-pwd"
    /usr/local/opt/midnight-commander/libexec/mc/mc "$@"
    if [ -f "$MC_PWD_FILE" ]; then
        local MC_NEW_PWD=$(cat "$MC_PWD_FILE")
        rm -f "$MC_PWD_FILE"
        if [ -d "$MC_NEW_PWD" ]; then
            cd "$MC_NEW_PWD"
        fi
    fi
}
  1. 执行source ~/.bash_profile让配置立刻生效。

针对zsh用户(系统默认):

因为zsh默认不加载.bash_profile,所以要改~/.zshrc:

  1. 打开~/.zshrc,添加上面一模一样的函数代码
  2. 执行source ~/.zshrc生效。

别忘了开mc本身的保存设置

打开mc后按F9调出菜单,选Options -> Configuration,把Save panel positions on exit和Remember last directory on exit这两个选项勾上,按F10保存退出,再重新开mc测试。

要是上面的函数不好使,试试找对wrapper脚本的正确路径

brew装的mc,wrapper脚本的路径可能因为版本不同有变化,别直接抄网上的路径:

  1. 先执行which mc找到mc的安装位置,比如输出是/usr/local/bin/mc,那对应的wrapper一般在/usr/local/Cellar/midnight-commander/xxx/libexec/mc/mc-wrapper.sh(xxx是你的mc版本号)
  2. 把别名改成用点命令执行这个正确路径的脚本,比如:
alias mc=". /usr/local/Cellar/midnight-commander/4.8.30/libexec/mc/mc-wrapper.sh"

替换成你自己的版本号就行,然后source配置文件生效。

内容的提问来源于stack exchange,提问作者Beto

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.01 08:47:23