У меня странное взаимодействие с бродягой и cygwin-mount (я думаю: Emacs: завершение имени файла с помощью табуляции добавляет дополнительный i:\cygwin). Из-за этого я хочу отключить трамп. Я не могу найти ничего в моем .emacs, который явно загружает трамп. Я вижу «Загрузка бродяги ...», когда нажимаю вкладку в минибуфере поиска файлов. Я хотел бы выяснить, какой пакет вызывает загрузку бродяги, и отключить это. Как мне это сделать? Я пытался искать (требовать «бродягу»), но не смог найти ничего интересного. Единственный другой вариант, который я могу придумать, - это закомментировать фрагменты моего .emacs один за другим и посмотреть, какой из них работает, но это настолько грубая сила, что мне нужен более умный (и простой) способ.
Как в Emacs узнать, какой пакет загружает бродягу?
Ответы (4)
Какой отличный вопрос! Хотя бы потому, что я не знал о функции (форма файла eval-after-load), которая позволит вам написать следующий код и поместить его в ваш файл .emacs:
(eval-after-load "tramp"
'(debug))
Что в форме грубой силы вырвет трассировку в вашем окне и обнаружит оскорбительную библиотеку.
Я думаю, вы обнаружите, что бродяга включена по умолчанию. Если вы сделаете:
M-x customize-apropos
Customize (regexp): tramp
("Customize (regexp):" - это приглашение от emacs) вы увидите две перечисленные переменные (по крайней мере, я делаю это в emacs 23), что-то вроде:
Если вы установили режим бродяги на «выкл», сохраните для будущих сессий и перезапустите emacs бродяга больше не должен загружаться. Я считаю, что вы можете просто отключить его в текущем сеансе, чтобы вы могли проверить это, но это не всегда работает с настраиваемыми переменными, хотя это должно работать с чем-то вроде трамп, который является частью стандартного дистрибутива emacs.
У меня больше не установлен emacs 22, но что-то подобное должно работать и для него.
У меня была аналогичная проблема с трампом, когда однажды я обнаружил в своей системе «/C:\...\debuglog.txt». Из-за этого файла автозаполнение вызывало бродягу каждый раз, когда я вводил «/». И бродяга, конечно же, выдавал ошибку. автозаполнение звонило
(expand-file-name ...)
который из-за текущего обработчика имен файлов вызывал бродягу. Мое решение было:
(delete-if
(lambda (x)
(or (eq (cdr x) 'tramp-completion-file-name-handler)
(eq (cdr x) 'tramp-file-name-handler)))
file-name-handler-alist)
(require 'cl)
.
- person Simon Wright; 22.09.2012
Инструментируйте файл поиска для отладки и/или инструментируйте свой файл инициализации для отладки. Затем вы можете пройти через загрузку и посмотреть, куда загружается бродячий материал.
find-symbol-at-point
никогда не заметит определение переменной в этих случаях.
- person phils; 04.10.2011