过去,当我玩 Linux 时,我使用 Midnight Commander 快速浏览文件。我现在使用 Windows,并使用 Far Manager 代替 MC。它们之间有很大的不同,但我现在最大的问题是 far 本身毫无用处。
假设我在 C:\ 中的 cmd 中,我输入 far . . (打开当前文件夹中的两个选项卡,而不是 far 默认的选项卡),然后我在第一个选项卡中转到 \Program Files\code\etc - 现在我想退出此文件夹中的 far(F10)。如果我按 F10,它会将我恢复到原始文件夹(C:)。
我已经找遍了所有地方,但缺少文档。
答案1
每个进程(不是每个控制台)都有自己的“当前目录”,并且进程不能改变任何其他进程的“当前目录”——在 Windows 中不行,在 Linux 中也不行。
您描述的 MC 行为必须使用简单退出以外的其他方式来实现:
你不需要通过 F10 退出,而是告诉 MC 打开一个新 shell里面按 Ctrl+O(这只会隐藏 MC,但实际上不会返回到父级 shell)。您可以在 FAR 中使用相同的 Ctrl+O 快捷方式。
您无需直接运行 MC,而是通过 bash 别名/函数来运行它,该别名/函数等待 MC 退出,在某个约定的位置查找 MC 使用的最后路径,然后将 shell 的“当前目录”更改为该路径。(这需要 MC 的配合才能将路径实际存储在某处。)这可以在 Windows Cmd 中使用 .bat 脚本来完成,但前提是 FAR 有一种方法可以在“退出前”执行操作。