如何防止emacs解析路径中的目录符号链接?

时间:2012-05-08 13:27:33

标签: emacs path symlink

我有一个项目,称之为'foobar',当我结帐时其所有来源都在文件夹“foobar / foobar”中。因为顶级foobar目录除了内部foobar目录之外什么都没有,所以它没有意义,但这就是事情最初被检入项目的方式,并且它不受我的控制。这会让路径变得更长,更难以阅读,所以我将toplevel foobar重命名为“foobar-checkout”,然后创建一个名为“foobar”的符号链接到“foobar-checkout / foobar”。这样我就可以打开“foobar / source.c”而不是“foobar / foobar / source.c”。

这适用于我在shell中,当我第一次在emacs中打开文件时,但在此之后emacs将解析符号链接。因此,如果我打开source.c并按Ctrl + x Ctrl + f打开一个新文件,它列出的路径是“foobar-checkout / foobar /”而不是“foobar /”。有没有办法让emacs不解析符号链接,所以我可以享受较短的路径?

2 个答案:

答案 0 :(得分:0)

我刚刚在GNU Emacs 22.2.1上试过这个,它似乎没有解决我的符号链接。是否有可能解析符号链接不是vanilla emacs行为,而是文件打开模块无意中引入的内容,例如ffap.el?

无论哪种方式,我无法测试我的想法,但我发现你可能会覆盖file-symlink-p,目前描述为:

file-symlink-p is a built-in function in `C source code'.

(file-symlink-p FILENAME)

Return non-nil if file FILENAME is the name of a symbolic link.
The value is the link target, as a string.
Otherwise it returns nil.

This function returns t when given the name of a symlink that
points to a nonexistent file.

如果你修改它总是返回nil,那么emacs可能无法解析符号链接:

(defun file-symlink-p (FILENAME)
    nil)

当然,这可能会打破其他一些东西,但也许值得一试。

答案 1 :(得分:0)

您可能希望使用directory-abbrev-alistvc-follow-symlinks