问题
Is there a test to obtain the remote server name (e.g., localhost
) or address (e.g., 12.34.56.789
) in the current-buffer
with dired-mode
active?
I suppose I could use string-match
or split-string
and then equal
, but I thought there might be a handy function like get server name.
iphone -- dired-directory
/ssh:root@localhost#2222:/var/mobile/Applications/F30B1574-5979-4764-8742-7F9DB2863094/Documents/.0.data:
shared server -- dired-directory
/ssh:lawlist@12.34.56.789:/home/lawlist/public_html:
回答1:
If it's tramp paths you're interested in, then you probably want to look at tramp-dissect-file-name
or with-parsed-tramp-file-name
. e.g.:
(tramp-file-name-host (tramp-dissect-file-name path))
If you want to exclude the port, use tramp-file-name-real-host
.
You might need to check file-remote-p
first, if that's not already certain; and that also leads us to a nice shortcut I'd never noticed before:
(file-remote-p path 'host)
(no port-less option here, if would seem)
来源:https://stackoverflow.com/questions/24481381/emacs-dired-mode-test-to-determine-remote-server-name-address