私はterm-modeEmacs 内で Bash シェルを実行していました。リモート ホストでは、term-modeのディレクトリ追跡機能default-directoryがホスト名を含むように設定されているため、タブ補完とファイル アクセスは Tramp を介してリモートで行われます。ただし、NFS から同じディレクトリをロードするため、ワークステーションとほとんど同じファイルシステムを共有するリモート ホストを使用することがあります。これらの場合、Tramp は私を遅らせすぎます。default-directoryこれらのシステムを使用する場合、Emacs がローカルに設定できるようにしたいと思います。これを行うためにterm-handle-ansi-terminal-messages、システムterm.elから、.emacs. この部分を置き換えます:
((= command-code ?h)
(setq term-ansi-at-host argument))
これとともに:
((= command-code ?h)
(setq term-ansi-at-host-real argument)
(setq term-ansi-at-host
;; if it has an equivalent filesystem group, set to system-name
(if (term-equivalent-filesystem-host-group-p argument)
(system-name)
argument)))
これはterm-equivalent-filesystem-host-group-p、ホストが同等のファイルシステムを持つものとして扱われるべきかどうかを伝える関数を呼び出します。
この方法には望ましい効果がありますが、システムの Lisp コードをコピーして変更することは、コードの将来の変更に対して堅牢ではありません。関数の機能の半分 (メッセージ ループまたはdefault-directoryand ange-ftp-… 変数の設定) を複製せずに関数をアドバイスすることはできないと思います。
これを行うより良い方法はありますか?