Mac系统下如何让Midnight Commander退出时保留当前目录
解决MacOS Sonoma 14.3下Midnight Commander退出后保留当前目录的问题
先确认你的shell环境
MacOS Sonoma默认用的是zsh,如果你还在用bash,得先搞清楚自己的配置文件有没有被正确加载。
直接用自定义函数替代别名(亲测有效)
不管是bash还是zsh,都可以用这个方法:
针对bash用户:
- 打开
~/.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 }
- 执行
source ~/.bash_profile让配置立刻生效。
针对zsh用户(系统默认):
因为zsh默认不加载.bash_profile,所以要改~/.zshrc:
- 打开
~/.zshrc,添加上面一模一样的函数代码 - 执行
source ~/.zshrc生效。
别忘了开mc本身的保存设置
打开mc后按F9调出菜单,选Options -> Configuration,把Save panel positions on exit和Remember last directory on exit这两个选项勾上,按F10保存退出,再重新开mc测试。
要是上面的函数不好使,试试找对wrapper脚本的正确路径
brew装的mc,wrapper脚本的路径可能因为版本不同有变化,别直接抄网上的路径:
- 先执行
which mc找到mc的安装位置,比如输出是/usr/local/bin/mc,那对应的wrapper一般在/usr/local/Cellar/midnight-commander/xxx/libexec/mc/mc-wrapper.sh(xxx是你的mc版本号) - 把别名改成用点命令执行这个正确路径的脚本,比如:
alias mc=". /usr/local/Cellar/midnight-commander/4.8.30/libexec/mc/mc-wrapper.sh"
替换成你自己的版本号就行,然后source配置文件生效。
内容的提问来源于stack exchange,提问作者Beto
相关产品推荐
相关产品推荐

