擅长:python、mysql、java
<p>我不太了解鲁德尔,不能给出100%的解决方案,但你想做的是这样的:</p>
<pre><code>(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)))
</code></pre>
<p>只需要将代码的<code>...get-name-from-document...</code>部分替换为所需的文件名,例如,如果缓冲区名为<code>myfile.py</code>,则可以将其更改为<code>(buffer-name)</code>。但是,如果缓冲区的名称是奇数,那么您可能需要从document对象中提取该名称(Rudel在内部使用document对象来表示您正在共享的内容)。因此,如果<code>(buffer-name)</code>不起作用,可以尝试<code>(rudel-suggested-buffer-name document)</code>。在</p>
<p>例如,尝试上述代码,但使用以下行之一:</p>
^{pr2}$
<p>以及</p>
<pre><code> (let ((buffer-file-name (rudel-suggested-buffer-name document)))
</code></pre>
<p><code>set-auto-mode</code>将使用<code>buffer-file-name</code>的值来确定使用<a href="http://www.gnu.org/s/emacs/manual/html_node/elisp/Auto-Major-Mode.html" rel="nofollow noreferrer">general Emacs mechanisms</a>的主模式。在</p>