私はtrampとcygwin-mountと奇妙な相互作用をしています(私は思う:Emacs:ファイル名のタブ補完は余分な i:\cygwin を追加します)。このため、tramp を無効にしたいと考えています。.emacs で、tramp を明示的にロードしているものが見つかりません。ファイル検索ミニバッファでタブを押すと、"Loading Tramp..." と表示されます。トランプのロードを引き起こしているパッケージを特定し、それを無効にしたいと思います。どうすればこれを行うことができますか?(require 'tramp) を検索してみましたが、興味深いものは見つかりませんでした。私が考えることができる他の唯一のオプションは、.emacs のビットを 1 つずつコメントアウトして、どれが機能するかを確認することです。
4 に答える
なんて素晴らしい質問でしょう。次のようなコードを記述して.emacsファイルに入れることができる関数(eval-after-loadファイル形式)を知らなかったからです。
(eval-after-load "tramp"
'(debug))
これは、ブルートフォース形式で、ウィンドウ内のバックトレースを吐き出し、問題のあるライブラリを明らかにします。
トランプはデフォルトでオンになっていることがわかると思います。もしあなたがそうするなら:
M-x customize-apropos
Customize (regexp): tramp
('Customize (regexp):' は emacs からのプロンプトです) 次のような 2 つの変数が表示されます (少なくとも私は emacs 23 で行います):
もしtramp-modeを「off」に設定し、将来のセッションのために保存し、emacsを再起動すると、trampはロードされなくなります。現在のセッションでオフにするだけでこれをテストできると思いますが、これはカスタマイズ変数では常に機能するとは限りませんが、標準の emacs ディストリビューションの一部であるtrampなどでは機能するはずです。
私はもうemacs 22をインストールしていませんが、同様のものがうまくいくはずです。
ある日、システムで「/C:\...\debuglog.txt」を見つけたとき、trampでも同様の問題が発生しました。そのファイルのため、オートコンプリートは「/」を入力するたびにトランプを呼び出していました。そして、トランプはもちろんエラーを出していました。オートコンプリートは呼び出していました
(expand-file-name ...)
これは、現在のfile-name-handler-alistのために、trampを呼び出していました。私の解決策は:
(delete-if
(lambda (x)
(or (eq (cdr x) 'tramp-completion-file-name-handler)
(eq (cdr x) 'tramp-file-name-handler)))
file-name-handler-alist)
Instrumentfind-デバッグ用のファイルおよび/またはデバッグ用のinitファイルをインストルメントします。次に、読み込みをステップ実行して、トランプのものがどこに読み込まれるかを確認できます。