Previous: Directory Variables, Up: Variables [Contents][Index]
ほとんどの変数はローカルマシンの状況を反映します。リモートのデフォルトディレクトリーをもつバッファー操作時には、それらの変数が異なる値を使用しなければならないときが時折あります。shell
の呼び出し時に適用するシェルについて考えてみてください。ローカルマシンでは/bin/bashでリモートマシンでは/bin/kshかもしれません。
これは接続ローカル変数(connection-local variables)で実現することができます。ディレクトリーローカル変数とファイルローカル変数は接続ローカル変数をオーバーライドします。安全ではない接続ローカル値は、安全でないファイルローカル値と同じ方法で扱われます(Safe File Variablesを参照してください)。
接続ローカル変数はconnection-local-set-profile-variables
関数を使用して変数/値ペアのグループとしてプロファイル(profile)内に宣言されます。関数connection-local-set-profiles
はリモートマシンを識別する与えられた条件にたいしてプロファイルをアクティブにします。
(connection-local-set-profile-variables 'remote-ksh '((shell-file-name . "/bin/ksh") (shell-command-switch . "-c"))) (connection-local-set-profile-variables 'remote-bash '((shell-file-name . "/bin/bash") (shell-command-switch . "-c"))) (connection-local-set-profiles '(:application tramp :machine "remotemachine") 'remote-ksh)
このコードはremote-ksh
とremote-bash
という2つの異なるプロファイルを宣言しています。プロファイルremote-ksh
はホスト名としてregexpの"remotemachine"
にマッチするリモートデフォルトディレクトリーをもつすべてのバッファーに適用されます。このような条件はプロパティ:protocol
(Trampの手法)や:user
(リモートユーザー名)も区別できます。nil
という条件はリモートデフォルトディレクトリーをもつすべてのバッファーにマッチします。