Я установил Pymacs, rope, ropemode, ropemacs, и когда я случайно выполнил pymacs-terminate-services
, я не смог сохранить измененные буферы. Сначала он спросил меня - The Pymacs helper died. Restart it? (yes or no)
. Если бы я ответил "да", он бросил - Debugger entered--Lisp error: (error "There is no Pymacs helper!")
. Если я ответил "нет", он бросил:
Debugger entered--Lisp error: (error "Python: Traceback (most recent call last):
File \"/usr/local/lib/python2.7/dist-packages/Pymacs.py\", line 258, in loop
value = eval(text)
File \"<string>\", line 1, in <module>
IndexError: list index out of range
")
Мне удалось обойтись, выполнив pymacs-load
, загрузив модуль os
и отвечая да на вопрос о перезапуске помощника Pymacs. Буфер был сохранен, но затем я начал получать другую ошибку каждый раз, когда я сохранил файл:
Debugger entered--Lisp error: (error "Python: Traceback (most recent call last):
File \"/usr/local/lib/python2.7/dist-packages/Pymacs.py\", line 258, in loop
value = eval(text)
File \"<string>\", line 1, in <module>
TypeError: major() takes exactly 1 argument (0 given)
")
Это мой init файл:
(load "~/.emacs.d/pymacs.el")
(autoload 'pymacs-apply "pymacs")
(autoload 'pymacs-call "pymacs")
(autoload 'pymacs-eval "pymacs" nil t)
(autoload 'pymacs-exec "pymacs" nil t)
(autoload 'pymacs-load "pymacs" nil t)
(autoload 'pymacs-autoload "pymacs")
(require 'pymacs)
(pymacs-load "ropemacs" "rope-")
Руководство пользователя Pymacs описывает смерть помощника Pymacs. Это говорит о том, что я не должен закрывать буфер *Pymacs*
, потому что это убивает помощника, а также должен перезапускать Emacs, если помощник убит. Это неприемлемо, поскольку у меня есть привычка время от времени закрывать все буферы, а также редко перезапускать Emacs. У меня есть несколько связанных вопросов:
- Каков наилучший способ обработки Pymacs для минимизации таких проблем? Можно ли запускать Pymac только тогда, когда я работаю с Python, а затем безопасно завершать его снова?
- Что такое
pymacs-terminate-services
для и должен ли я когда-либо запускать его? - Что делать, если я случайно запускаю
pymacs-terminate-services
? Мне особенно интересно, как отредактироватьbefore-save-hook
, чтобы сделать сохранение буфера без сообщений об ошибках.