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

Car*_*ley 14 mc

十多年来我一直在使用Fedora和Ubuntu十多年,而且我们从他们安装的午夜指挥官那里注意到了一个轻微但又令人烦恼的差异.当你使用Fedora更改其中的dirs,然后退出时,它已经为你完成了chdir,但在Ubuntu中它将它保存在你开始的地方.谷歌搜索在这里为旧的Ubuntus提出了一个解决方案:http://ptspts.blogspot.co.uk/2010/01/how-to-make-midnight-commander-exit-to.html 但尝试失败16.当我说失败,我的意思是命令被接受而没有抱怨,但它不会改变mc在Ubuntu中的行为.

sog*_*ger 16

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

把这一行放到〜/ .profile中

alias mc='. /usr/lib/mc/mc-wrapper.sh'
Run Code Online (Sandbox Code Playgroud)

  • 谢谢.只是想注意它并不总是可以放入〜/ .profile.例如,在ubuntu上它可以是〜/ .bash_aliases (2认同)
  • @Babblo 嗯,mc 的开发人员用他们的 mc-wrapper.sh 脚本做了他们能做的一切。实际使用包装器将取决于各个发行版的创建者,但向骨架添加 3 行将占用他们第 17 次重写引导序列脚本的宝贵时间。是的,您的评论是合理的,我们不应该处理这个问题。15 年前,我有一个 Mandrake 做到了这一点,但从那时起,发行版就专注于让每个版本的 GUI 变得更俗气。 (2认同)

Kol*_*nya 7

使用以下内容创建可执行文件:

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
Run Code Online (Sandbox Code Playgroud)

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

alias mc='. ~/.config/mc/exitcwd'
Run Code Online (Sandbox Code Playgroud)

不要忘记应用别名:

source ~/.bashrc
Run Code Online (Sandbox Code Playgroud)

  • 我不是 Linux 专家,但用户名可以在 `USER` 环境变量中使用,不需要 `MC_USER=`,或者? (2认同)

Van*_*nel 5

在文章《像专业人士一样使用 Midnight Commander》中,解释了如何操作。

基本上,您必须为mc-wrapper.sh.


waz*_*123 5

简单的:

mcedit ~/.profile
Run Code Online (Sandbox Code Playgroud)

在文件末尾添加这一行:

alias mc='source /usr/lib/mc/mc-wrapper.sh'
Run Code Online (Sandbox Code Playgroud)

键入此命令以执行更改

source ~/.profile
Run Code Online (Sandbox Code Playgroud)

然后,要保存两侧的mc窗口,请单击MC顶部的

Options -> Panel options -> Auto save panels setup
Run Code Online (Sandbox Code Playgroud)