首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Emacs协作缓冲区以错误的模式打开

Emacs协作缓冲区以错误的模式打开
EN

Stack Overflow用户
提问于 2010-03-04 06:24:27
回答 2查看 514关注 0票数 4

我正在使用Emacs和Rudel与远程程序员协作。Rudel有一个发布缓冲区的概念。当我的合作伙伴发布一个缓冲区时,我可以订阅它,我们可以同时编辑它。

我的问题是,当他发布一个带有*.py扩展名的Python文件,而我订阅了它时,我的缓冲区并没有自动设置为python模式(它处于基本模式)。如何才能使缓冲区以正确的语言模式打开?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-03-04 08:05:41

我对Rudel还不够了解,无法给出一个100%的解决方案,但你想做的事情是这样的:

代码语言:javascript
复制
(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)。但是,如果缓冲区的名称很奇怪,您可能需要从document对象中提取名称(Rudel内部使用document对象来表示您要共享的内容)。因此,如果(buffer-name)不起作用,您可以尝试(rudel-suggested-buffer-name document)

例如,尝试上面的代码,但使用以下代码之一:

代码语言:javascript
复制
  (let ((buffer-file-name (buffer-name)))

代码语言:javascript
复制
  (let ((buffer-file-name (rudel-suggested-buffer-name document)))

set-auto-mode将使用buffer-file-name的值来确定使用general Emacs mechanisms的主要模式。

票数 3
EN

Stack Overflow用户

发布于 2010-03-04 09:09:52

我对rudel是如何工作的一无所知。但是,您是否尝试过在文本文件中显式设置模式?尝试将类似以下内容添加到文件的第一行:

代码语言:javascript
复制
# -*- mode: python; fill-column: 75; comment-column: 50; -*-

将像这样的行放在文件的第一行将导致emacs忽略文件的扩展名并以给定的模式打开。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2375473

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档