我有一个项目,称之为'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不解析符号链接,所以我可以享受较短的路径?
答案 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-alist
或vc-follow-symlinks
。