GNU Emacs 32.0.50 (9008bf64c3) のマニュアルを PLaMo 翻訳で機械翻訳したものです。誤訳を含むことがあります。原文: https://www.gnu.org/software/emacs/manual/html_node/elisp/Connection-Local-Profiles.html ・ emacs-doc.conao3.com

12.14.1 接続ローカルプロファイル

Emacsでは、接続ごとに適用する変数設定を保存するためにconnection-localプロファイルを使用します。そして、connection-local-set-profilesを用いて適用条件を定義することで、これらをリモート接続に関連付けることができます。

関数: connection-local-set-profile-variables profile variables

この関数は、シンボルである接続 profile に対する一連の変数設定を定義します。後でこの接続プロファイルを1つ以上のリモート接続に割り当てると、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

このalistには、接続プロファイルのシンボルと関連する変数設定が格納されています。connection-local-set-profile-variablesによって更新されます。

関数: connection-local-set-profiles criteria &rest profiles

この関数は、criteria で識別されるすべてのリモート接続に、シンボルである profiles を割り当てます。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

このalistには、接続条件とそれに割り当てられたプロファイル名が格納されています。関数 connection-local-set-profiles はこのリストを更新します。