接続ローカルプロファイルとは、特定の接続にたいして適用する変数のセッティングを保存するためにEmacsが使用するプロファイルのことです。connection-local-set-profiles
を使用してプロファイルを適用すべき条件を定義することで、プロファイルとリモート接続を関連付けることができます。
この関数は接続profile
(シンボル)にたいする一連の変数セッティングを定義する。この接続プロファイルに後から1つ以上のリモート接続を割り当てることができ、Emacsはそれらの接続にたいするすべてのプロセスバッファーにそれらの変数セッティングを適用するだろう。variables内のリストは(name . value)
という形式のalist。たとえば:
(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
により更新される。
この関数はcriteriaで識別されるすべてのリモート接続にprofiles
(シンボル)を割り当てる。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は接続のcriteria(判断基準)それに割り当てられたとprofileの名前を含む。関数connection-local-set-profiles
はこのリストを更新する。