【问题标题】:Emacs -- dired-mode test to determine remote server name / addressEmacs -- dired-mode 测试以确定远程服务器名称/地址
【发布时间】:2014-06-30 00:02:58
【问题描述】:

是否有测试在current-buffer 中获取远程服务器名称(例如localhost)或地址(例如12.34.56.789)并激活dired-mode

我想我可以使用string-matchsplit-string 然后equal,但我认为可能有一个方便的功能,比如获取服务器名称。

iphone -- 目录

/ssh:root@localhost#2222:/var/mobile/Applications/F30B1574-5979-4764-8742-7F9DB2863094/Documents/.0.data:

共享服务器 -- 目录

/ssh:lawlist@12.34.56.789:/home/lawlist/public_html:

【问题讨论】:

  • 这似乎是 TRAMP 问题,而不是 DIRED 特有的问题。
  • @Barmar -- 感谢您帮助我接触到正确的目标受众。 :)

标签: emacs elisp dired tramp


【解决方案1】:

如果您对流浪路径感兴趣,那么您可能想查看tramp-dissect-file-namewith-parsed-tramp-file-name。例如:

(tramp-file-name-host (tramp-dissect-file-name path))

如果要排除端口,请使用tramp-file-name-real-host

如果还不确定,您可能需要先检查file-remote-p;这也让我们找到了一条我以前从未注意到的好捷径:

(file-remote-p path 'host)

(这里没有无端口选项,如果可能的话)

【讨论】:

  • 非常感谢您的帮助——非常感谢! :) 对于端口为 2222 的 localhost,我最终使用了(and (file-remote-p dired-directory 'localhost) (equal (tramp-file-name-real-host (tramp-dissect-file-name dired-directory)) "localhost")) 的条件。对于另一个远程服务器,我使用几乎相同的东西 - 只是替换 localhost 并将其替换为 12.34.56.789
猜你喜欢
  • 2020-07-04
  • 2015-07-27
  • 1970-01-01
  • 2013-05-17
  • 2012-06-26
  • 2011-07-22
  • 1970-01-01
  • 2018-05-23
  • 1970-01-01
相关资源
最近更新 更多