Я не знаю Rudel достаточно хорошо, чтобы дать 100% -ный, но то, что вы хотите сделать что-то вроде этого:
(add-hook 'rudel-document-attach-hook 'my-rudel-set-mode-appropriately)
(defun my-rudel-set-mode-appropriately (document buffer)
"try to set the mode appropriately"
(set-buffer buffer)
(let ((buffer-file-name ...get-name-from-document...))
(set-auto-mode)))
Только вам нужно заменить ...get-name-from-document...
часть кода с то, что оценивает имя файла, которое вы хотите, например, если буфер называется myfile.py
, тогда вы можете изменить его на (buffer-name)
. Но если буферы получают нечетные имена, возможно, вам нужно извлечь имя из объекта документа (Rudel внутренне использует объект документа для представления того, что вы делите). Итак, если (buffer-name)
не работает, вы можете попробовать (rudel-suggested-buffer-name document)
.
т.е. попробовать код выше, но с использованием одной из этих линий:
(let ((buffer-file-name (buffer-name)))
и
(let ((buffer-file-name (rudel-suggested-buffer-name document)))
set-auto-mode
будет использовать значение buffer-file-name
для определения основного режима с помощью general Emacs mechanisms.
вид оффтопа, но как вы его все настроили? есть хороший учебник? (Мне никогда не удавалось нормально работать с руделем) – unhammer
Я точно не помню, но Рудель не был прост в настройке, и я никогда не получил его на 100% правильно. Даже когда это сработало, буферы моего и моего партнера часто не синхронизировались в течение часа работы. Я отказался от использования Руделя. В эти дни я предпочитаю использовать tmux или GNU Screen для обмена текстовым терминалом с Emacs. Недостатком является то, что этот метод позволяет одновременно вводить только одного человека. На мой взгляд, это все равно, так как это заставляет вас больше сотрудничать. – hekevintran
Вот что я использую сейчас, tmux с emacs multi-tty. Но мы можем печатать в одно и то же время (этот метод http://www.emacswiki.org/emacs/tmux_for_collaborative_editing), но я думаю, что isearch и это немного перепутано ... – unhammer