簡體   English   中英

Emacs協作緩沖區以錯誤模式打開

[英]Emacs collaborative buffers open in the wrong mode

我正在使用Emacs和Rudel與遠程程序員合作。 Rudel有一個已發布緩沖區的概念。 當我的合作伙伴發布緩沖區時,我可以訂閱它,我們可以同時編輯它。

我的問題是當他發布一個帶有* .py擴展名的Python文件並且我訂閱它時,我的緩沖區沒有自動設置為python-mode(它處於基本模式)。 如何才能使用正確的語言模式打開緩沖區?

我不太清楚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來確定使用常規Emacs機制的主模式。

我對rudel的工作原理一無所知。 但是,您是否嘗試在文本文件中明確設置模式? 嘗試在文件的第一行添加這樣的內容:

# -*- mode: python; fill-column: 75; comment-column: 50; -*-

首先在文件中放置這樣的行將導致emacs忽略文件的擴展名並在給定模式下打開。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM