2

我可以在 Emacs 中利用某种通用路径名重写/规范化工具来允许将编译模式下的源文件转换为基于远程路径的本地路径吗?我希望使用符号链接,但这在 Windows 中对我不起作用。

我正在运行 GNU Emacs 23.1.1,并尝试过 cygwin-mount 和 w32-symlinks.el (with (customize-option 'w32-symlinks-handle-shortcuts));我无法获得打开文件/目录/完成或编译模式下一个错误来遵循 Windows 快捷方式或 cygwin 符号链接。

我正在远程编译(通过 ssh)并且警告/错误给出了文件名,其中/nfs/topaz远程主机上的绝对路径名(例如)的前缀需要替换为不同的路径(z:/实际上),我希望这样做带有符号链接。

/确实转到(在 emacs 中标签扩展为)和c:/cygwin(我的)。~z:/$HOME

我希望的是:修复符号链接解析(选项卡完成或打开 Windows 快捷方式让我得到 .lnk 文件,而不是它指向的文件),或者能够为路径名前缀提供重写列表。连接不是一个选项,因为我想要的替换路径在不同的驱动器上(它也是一个 Samba 挂载)。

4

3 回答 3

3

这是部分解决方案:

(custom-set-variables '(compilation-search-path (quote (nil "z:/dir1" "~/dir2"))

等等当然,我必须添加几十个路径,但这是一个巨大的改进(next-error 现在确实有效!)

于 2009-12-12T01:12:46.927 回答
1

这在其他复杂的构建环境中也很有用:我使用 OpenWRT,构建过程将源代码复制(或提取)到一个单独的构建目录,在其中进行编译。因此,在 emacs 编译缓冲区中天真地遵循文件名会导致编辑临时副本,而不是原始副本。危险的。

于 2010-01-16T18:16:58.690 回答
0

重读了几遍,还是不太清楚你的情况——你是远程编译本地编辑吗?如果是这样,您似乎应该尝试在同一台机器上执行这两项任务,或者尝试在 emacs 中使用tramp模式。我只是看不到将远程路径转换为本地路径的简单方法。

于 2009-12-11T01:33:32.283 回答