4

我目前正在使用流浪汉在远程机器上做很多工作。但是,在构建 make 命令行时项目逻辑会变得混乱,因为它会尝试 cd 到某些 /ssh:blah.... 路径。

tramp 是否提供任何 API 函数来测试缓冲区或缓冲区文件名是否实际上由 tramp 管理并因此在远程计算机上?它能否提供有关连接类型的其他信息(例如 ssh 用户/主机详细信息)?

4

2 回答 2

5

关于检查文件名是否由 tramp 管理的第一个问题,请参阅函数 tramp-tramp-file-p,如果文件名是 tramp 文件,它将返回 t。

于 2010-08-14T03:17:21.123 回答
2

该变量tramp-file-name-regexp用于匹配类似 Tramp 的文件名。(编辑:请参阅下面的 erikriverson 的答案,以获得更方便的匹配方式。)

这被添加到file-name-handler-alist(确定所有文件名的处理程序),并与 关联tramp-file-name-handler,因此您也可以测试函数的返回值find-file-name-handler以查看它是否匹配。这似乎是一种更强大的方法(尽管在实践中它可能没有区别)。

(eq (find-file-name-handler filename nil) 'tramp-file-name-handler)

(tramp-dissect-file-name filename)然后将返回各个连接组件(另请参见tramp-file-name-structure变量)。

于 2010-08-05T21:52:28.343 回答