12.14.1 Локальные профили соединений

Emacs использует локальные профили соединений для хранения настроек переменных, которые применяются к определенным соединениям. Затем вы можете связать их с удаленными соединениями, определив критерии, при которых они должны применяться, используя connection-local-set-profiles.

Функция: connection-local-set-profile-variables profile variables

Эта функция определяет набор настроек переменных для профиля 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))))
Пользовательский вариант: connection-local-profile-alist

Этот alist содержит символы профилей соединений и связанные с ними настройки переменных. Он обновляется функцией connection-local-set-profile-variables.

Функция: connection-local-set-profiles criteria &rest profiles

Эта функция назначает 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.

Пользовательский вариант: connection-local-criteria-alist

Этот alist содержит критерии соединения и имена назначенных профилей. Функция connection-local-set-profiles обновляет этот список.