Spec-Zone.ru › Elisp

Локальные переменные подключения

Локальные переменные подключения предоставляют общий механизм для различных настроек переменных в буферах с удаленным подключением. Они привязаны и устанавливаются в зависимости от удаленного подключения, к которому относится буфер.

Функция: connection-local-set-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-profile-alist

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

Функция: connection-local-set-profiles критерии &rest профили

Эта функция назначает профили, которые являются символами, всем удаленным подключениям, идентифицируемым по критериям. Критерии — это список свойств, идентифицирующий подключение и приложение, использующее это подключение. Названия свойств могут быть :application, :protocol, :user и :machine. Значение свойства :application — символ, все остальные значения свойств — строки. Все свойства необязательны; если критерии являются 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)

Если критерии являются 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)

Любой профиль подключения из профилей должен быть уже определен функцией connection-local-set-profile-variables.

Переменная: connection-local-criteria-alist

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

Функция: hack-connection-local-variables критерии

Эта функция собирает применимые локальные переменные подключения, связанные с критериями в connection-local-variables-alist, без их применения. Пример:

(hack-connection-local-variables
  '(:application 'tramp :protocol "ssh" :machine "localhost"))
connection-local-variables-alist
     ⇒ ((null-device . "/dev/null")
        (shell-login-switch . "-l")
        (shell-interactive-switch . "-i")
        (shell-command-switch . "-c")
        (shell-file-name . "/bin/bash"))
Функция: hack-connection-local-variables-apply критерии

Эта функция ищет локальные переменные подключения по критериям и немедленно применяет их в текущем буфере.

Макрос: with-connection-local-variables &rest тело

Применяются все локальные переменные подключения, которые указаны в default-directory.

После этого выполняется тело, и локальные переменные подключения снимаются.

(connection-local-set-profile-variables
  'remote-perl
  '((perl-command-name . "/usr/local/bin/perl")
    (perl-command-switch . "-e %s")))
(connection-local-set-profiles
  '(:application 'tramp :protocol "ssh" :machine "remotehost")
  'remote-perl)
(let ((default-directory "/ssh:remotehost:/working/dir/"))
  (with-connection-local-variables
    do something useful))
Переменная: enable-connection-local-variables

Если значение nil, локальные переменные подключения игнорируются. Эта переменная должна изменяться только временно в специальных режимах.

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

Spec-Zone.ru

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