1

使用 Emacs,如果当前缓冲区是“访问”一个普通文件(例如),其完整路径名是/path/to/somefile,并且运行find-file( C-x C-f),则出现在迷你缓冲区中的提示类似于

Find file: /path/to/▮

...光标按上述 ▮ 所示放置。IOW,默认显示的建议路径总是指向包含当前缓冲区正在访问的文件的目录。

但是,如果当前缓冲区是一个 Emacs shell 进程,并且一个运行find-file,那么,AFAICT,提示中显示的路径保持固定$PWD 当 shell 进程启动时的值,而与当前值无关$PWD

Find file: /pwd/at/startup/▮

这种行为不是很有用,因为$PWD启动时通常在以后变得无关紧要。如果' 提示符中显示的目录是shell 进程的当前.find-file $PWD

find-file每当当前缓冲区是 shell 进程时,是否有一种简单的方法可以修改为这种行为?

4

2 回答 2

1

您想要“外壳目录跟踪”。例如检查dirtrack-modeshell-dirtrack-mode

shell-dirtrack-mode尝试解析“cd”命令,(event_jr:根据我的经验,它不能始终如一地工作)。 dirtrack-mode使用提示正则表达式,效果很好。

于 2013-03-16T21:36:38.320 回答
0

有很多方法可以管理这个。正如Stefan所说,有几个内置的包可以管理它。

我首选的方法是更改​​您的提示(在 Emacs 中时)以$PWD嵌入其中,然后 Emacs 将其剥离并使用它。这样做的好处是始终保持最新状态。我发现dirtrack-mode有时会不同步。

在此处查看我的解决方案,这是对 Emacs Wiki 上类似实现的修改。

于 2013-03-17T04:06:15.533 回答