Emacs использует локальные профили соединений для хранения настроек переменных,
которые применяются к определенным соединениям. Затем вы можете связать их с
удаленными соединениями, определив критерии, при которых они должны применяться,
используя connection-local-set-profiles.
Эта функция определяет набор настроек переменных для профиля
profile, который является символом. Позже вы можете назначить
профиль соединения одно или несколько удаленных соединений, и Emacs применит
эти настройки переменных ко всем буферам процессов для этих соединений.
Список в variables представляет собой alist вида
(name . value). Пример:
(connection-local-set-profile-variables
'remote-bash
'((shell-file-name . "/bin/bash")
(shell-command-switch . "-c")
(shell-interactive-switch . "-i")
(shell-login-switch . "-l")))
(connection-local-set-profile-variables
'remote-ksh
'((shell-file-name . "/bin/ksh")
(shell-command-switch . "-c")
(shell-interactive-switch . "-i")
(shell-login-switch . "-l")))
(connection-local-set-profile-variables 'remote-null-device '((null-device . "/dev/null")))
Если вы хотите добавить настройки переменных к существующему профилю, вы
можете использовать функцию connection-local-get-profile-variables
для получения существующих настроек, например:
(connection-local-set-profile-variables 'remote-bash (append (connection-local-get-profile-variables 'remote-bash) '((shell-command-dont-erase-buffer . t))))
Этот alist содержит символы профилей соединений и связанные с ними
настройки переменных. Он обновляется функцией
connection-local-set-profile-variables.
Эта функция назначает profiles, которые являются символами,
всем удаленным соединениям, идентифицированным по criteria.
criteria — это plist, идентифицирующий соединение и приложение,
использующее это соединение. Имена свойств могут быть :application,
:protocol, :user и :machine.
Значение свойства :application — это символ, все остальные
значения свойств — строки. Все свойства являются необязательными; если criteria
равно nil, оно всегда применяется. Пример:
(connection-local-set-profiles '(:application tramp :protocol "ssh" :machine "localhost") 'remote-bash 'remote-null-device)
(connection-local-set-profiles
'(:application tramp :protocol "sudo"
:user "root" :machine "localhost")
'remote-ksh 'remote-null-device)
Если criteria равно nil, оно применяется ко
всем удаленным соединениям. Следовательно, приведенный выше пример эквивалентен
(connection-local-set-profiles '(:application tramp :protocol "ssh" :machine "localhost") 'remote-bash)
(connection-local-set-profiles
'(:application tramp :protocol "sudo"
:user "root" :machine "localhost")
'remote-ksh)
(connection-local-set-profiles nil 'remote-null-device)
Любой профиль соединения из profiles должен был быть ранее
определен функцией connection-local-set-profile-variables.
Этот alist содержит критерии соединения и имена назначенных профилей.
Функция connection-local-set-profiles обновляет этот
список.