Spec-Zone.ru › Elisp

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

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

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

Эта функция задаёт набор настроек переменных для профиля соединения profile, который является символом. Позже можно назначить этот профиль соединения одному или нескольким удалённым соединениям, и Emacs применит эти настройки переменных ко всем буферам процессов для этих соединений. Список в variables — это ассоциативный список следующего вида: (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

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

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

Эта функция назначает профили profiles, являющиеся символами, всем удалённым соединениям, определяемым критериями criteria. criteria — это список свойств, идентифицирующий соединение и приложение, использующее это соединение. Имена свойств могут быть :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

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

Copyright © 1990-1996, 1998-2026 Free Software Foundation, Inc.
Licensed under the GNU GPL license.
https://www.gnu.org/software/emacs/manual/html_node/elisp/Connection-Local-Profiles.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API