簡體   English   中英

Emacs:如何設置存儲在變量中的主模式?

[英]Emacs: how do I set a major-mode stored in a variable?

假設我有一個帶有某些模式名稱的變量newName,例如"python-mode" 如何使newName指定的模式的當前緩沖區?

(progn
  (let (newName)
    (setq newName "python-mode")
    (newName) ;; doesn't work! It doesn't set current buffer's mode to be a python mode.
  )
)

這也行不通:

(set-variable 'major-mode "python-mode")

這個問題是根本的-因為它等於“真的有可能將數據當作Lisp中的代碼來對待嗎?”

編輯

@phils

您的解決方案對我不起作用。 我復制一個緩沖區-我希望新緩沖區具有與舊緩沖區相同的模式。 因此,我將原始緩沖區的模式存儲在變量中。 然后嘗試應用您的解決方案。 它給出了錯誤(這是本質-我在這里省略了緩沖區復制的內容):

(let (sameMode)
  (setq sameMode major-mode)
  (funcall (intern sameMode))
)

sameMode在此處以“ python-mode”的形式存儲模式(例如python-mode的示例)。

(let ((mode "python-mode"))
  (funcall (intern mode)))

要么

(let ((mode 'python-mode))
  (funcall mode))

暫無
暫無

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

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