Предлагает ли tramp какой-либо API для запроса информации из имени файла-буфера - PullRequest
4 голосов
/ 05 августа 2010

Я сейчас много работаю на удаленных машинах с бродягой.Однако логика проекта запутывается при сборке командных строк make, поскольку он пытается выполнить переход к некоторому пути / ssh: blah .... path.

Предоставляет ли tramp какие-либо функции API для проверки наличия буфера или имени файла буферафактически управляется бродягой и поэтому на удаленной машине?Может ли он предоставить дополнительную информацию о типе соединения (например, сведения о пользователе / ​​хосте ssh)?

Ответы [ 2 ]

5 голосов
/ 14 августа 2010

Что касается вашего первого вопроса о проверке, управляет ли имя файла tramp, смотрите функцию tramp-tramp-file-p, которая вернет t, если filename является файлом tramp.

2 голосов
/ 06 августа 2010

Переменная tramp-file-name-regexp используется для сопоставления имен файлов в стиле Tramp. (изменить: см. Ответ Эрикриверсона ниже для более удобного способа сопоставления с этим.)

Это добавляется к 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).

...