私は現在、トランプを使用してリモートマシンで多くの作業を行っています。ただし、make コマンド ラインをビルドすると、/ssh:blah.... パスに cd しようとするため、プロジェクト ロジックが混乱します。
Tramp は、バッファまたはバッファ ファイル名が実際に Tramp によって管理されているかどうか、したがってリモート マシン上でテストするための API 関数を提供していますか? 接続のタイプに関する追加情報を提供できますか (ssh ユーザー/ホストの詳細など)?
ファイル名がtrampによって管理されているかどうかのチェックに関する最初の質問については、関数tramp-tramp-file-pを参照してください。これは、filenameがtrampファイルの場合にtを返します。
この変数tramp-file-name-regexp
は、Trampのようなファイル名を照合するために使用されます。(編集:これに対抗するためのより便利な方法については、以下のerikriversonの回答を参照してください。)
これは(すべてのファイル名のハンドラーを決定する)に追加されfile-name-handler-alist
、に関連付けtramp-file-name-handler
られるため、関数の戻り値をテストして、find-file-name-handler
一致するかどうかを確認することもできます。これは少し堅牢な方法のように見えます(実際にはおそらく違いはありませんが)。
(eq (find-file-name-handler filename nil) 'tramp-file-name-handler)
(tramp-dissect-file-name filename)
次に、個々の接続コンポーネントを返します(tramp-file-name-structure
変数も参照してください)。