在Emacs中,我如何确定哪个包正在加载tramp?

在Emacs中,我如何确定哪个包正在加载tramp?,emacs,elisp,tramp,Emacs,Elisp,Tramp,我与流浪汉和西格温山有一种奇怪的互动(我想:)。因此,我想禁用流浪汉。我在.emacs中找不到任何显式加载tramp的内容。当我点击find file minibuffer中的选项卡时,我可以看到“Loading tramp…”。我想弄清楚是什么软件包导致了不定期航班的装载,并将其禁用。我该怎么做呢?我试着寻找(需要流浪汉),但找不到任何有趣的东西。我唯一能想到的另一个选择是逐个注释掉.emacs中的一些内容,看看哪一个是有效的——但这太残酷了,我想要一种更聪明(更简单)的方法。使用Instru

我与流浪汉和西格温山有一种奇怪的互动(我想:)。因此,我想禁用流浪汉。我在.emacs中找不到任何显式加载tramp的内容。当我点击find file minibuffer中的选项卡时,我可以看到“Loading tramp…”。我想弄清楚是什么软件包导致了不定期航班的装载,并将其禁用。我该怎么做呢?我试着寻找(需要流浪汉),但找不到任何有趣的东西。我唯一能想到的另一个选择是逐个注释掉.emacs中的一些内容,看看哪一个是有效的——但这太残酷了,我想要一种更聪明(更简单)的方法。

使用Instrument查找文件进行调试和/或使用Instrument初始化文件进行调试。然后你可以一步一步地完成装载,看看不定期货物装载在哪里。

这是一个多么好的问题啊!如果只是因为我不知道函数(加载文件后的eval表单),它将允许您编写如下代码并将其放入.emacs文件中:

(eval-after-load "tramp"
  '(debug))

这将以暴力的形式在你的窗口中吐出一条回溯线,并显示出有问题的库。

我想你会发现tramp在默认情况下是打开的。如果您这样做:

M-x customize-apropos
Customize (regexp): tramp
('Customize(regexp):'是emacs的提示)您将看到列出了两个变量(至少我在emacs 23中是这样做的),类似于:

如果将tramp模式设置为“off”,则不应再加载保存以备将来会话,并重新启动emacs tramp。我相信您可以在当前会话中关闭它,这样您就可以测试这一点,但这并不总是适用于自定义变量,尽管它应该适用于标准emacs发行版中的类似tramp的内容


我不再安装emacs 22了,但是类似的东西也应该可以使用。

有一天我发现tramp也有类似的问题 我的系统上的“/C:\…\debuglog.txt”。 由于该文件,auto complete每次都调用tramp 我输入“/”。当然,流浪汉也犯了一个错误。 自动完成正在呼叫

(expand-file-name ...)
由于当前的文件名,它正在调用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)

这看起来像是我想做的——但我不知道怎么做。你能告诉我一些细节吗?我在谷歌上搜索了一些用于调试的仪器emacs代码,你似乎建议我使用edebug defun,对吗?从tramp.el来看,tramp似乎没有一个单一的入口点函数。考虑到我是一名emacs新手,更多的细节将非常有用。我认为pajato0已经让这一点变得不重要了。但是,我编写或窃取了以下代码:(defun find symbol at point()“查找函数或变量的源代码”(交互式)(或(find function at point)(find variable at point)))我将其绑定到F5,现在我只需转到一个函数类型F5并得到它的定义,然后我只需插入此函数进行调试。在将符号视为函数或变量时要小心一点,因为给定的符号实际上可以同时是函数和变量(这是在模式中经常观察到的)。您的
在点处查找符号
将永远不会注意到这些实例中的变量定义。我也不知道,这似乎正是Rhith想要的。太棒了,pajato0。这确实帮助我缩小了问题的范围,并为我节省了至少一天的故障排除时间。此外,我还通过讨价还价了解了更多有关emacs的信息!谢谢你们所有人的回答和帮助。这解决了我的问题(使用tramp后,我无法再点击gnus中的超链接)。应用此修复程序后,我还没有再次尝试tramp。请记住,您必须先执行eg
(要求'cl)