【问题标题】:How to make Midnight Commander exit to its current directory如何让午夜指挥官退出到当前目录
【发布时间】:2016-12-25 08:05:02
【问题描述】:

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

【问题讨论】:

    标签: mc


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

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

      将此行放入您的~/.profile

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

      【讨论】:

      • 可以了,这个操作后重启putty就可以了
      • 是的,我没有提到。您也可以将同一行作为普通 bash 命令放在当前终端中,它也将在那里开始工作。
      • 谢谢。只是想注意它并不总是放在 ~/.profile 中。例如。在 ubuntu 上它可以是 ~/.bash_aliases
      • @Babblo 好吧,mc 的开发人员用他们的 mc-wrapper.sh 脚本做了他们所能做的一切。实际使用包装器将取决于各种发行版的创建者,但在骨架中添加 3 行将占用他们宝贵的时间来第 17 次重写引导序列脚本。是的,您的评论是有道理的,我们不应该处理这个问题。 15 年前,我有一个 Mandrake 做到了,但从那时起,发行版的重点是使他们的 GUI 在每次发布时都变得更俗气。
      【解决方案3】:

      简单:

      mcedit ~/.profile
      

      在文件末尾添加这一行:

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

      键入此命令以执行更改

      source ~/.profile
      

      然后,要保存mc窗口的两边,点击MC顶部的

      Options -> Panel options -> Auto save panels setup
      

      【讨论】:

        【解决方案4】:

        对于 Ubuntu,把它放到 .bashrc:

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

        然后:

        source ~/.bashrc
        

        (或重新启动控制台)

        【讨论】:

          【解决方案5】:

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

          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
          

          【讨论】:

          • 我不是 linux 大师,但用户名在 USER 环境变量中可用,不需要 MC_USER=,或者?
          【解决方案6】:

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

          【讨论】:

          • 我几乎从不使用 ctrl+o 选项,因为如果您忘记您已经在运行 mc 或正在运行使用 curses 的程序或我总是最终做的事情,mc 然后 ctrl+,它会造成很多混乱o 然后 ssh some.server.com 然后 ctrl+o 并退出,因为我虽然我在服务器上运行 mc 但我失去了 ssh 连接。如果您在不需要时退出 mc,IMO 会更干净。我使用 ctrl+o 代替的是在程序运行后读取屏幕,然后我立即返回 mc。
          • ctrl+o 对我来说非常有用,可以解决问题(忘记我正在使用 mc)我正在更改我在 mc 中的 PS1 以将其前缀为 [mc] ;-)
          【解决方案7】:

          在这里,在文章Use Midnight Commander like a pro 中,解释了如何做到这一点。

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

          【讨论】:

            猜你喜欢
            • 2017-01-06
            • 2016-01-01
            • 2015-03-28
            • 2013-01-26
            • 2011-12-24
            • 2020-02-22
            • 2013-02-04
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多