【问题标题】:Making a new emacs mode: simple comment dwim制作新的emacs模式:简单注释dwim
【发布时间】:2014-05-24 07:04:20
【问题描述】:
我正在为一种语言编写一个简单的主要模式,但在设置 cmets 时遇到了问题。我一直在关注教程:
http://www.emacswiki.org/emacs/ModeTutorial
但是,我不知道如何根据我的需要调整他们的示例注释 dwim,因为定义 cmets 的方式似乎很神秘。在这种语言中,cmets 只是使用散列 (#) 生成的。这与 Perl 或 Bash 相同。我有语法突出显示理解 cmets,但是当我尝试使用该模式时,我可以comment-dwim 我收到“未定义注释语法”错误。我怎样才能制作一个相当聪明的(缩进、块、取消注释)comment-dwim,它只使用哈希标记而不是任何 C 风格的花哨?
【问题讨论】:
标签:
emacs
comments
elisp
mode
【解决方案1】:
为了让comment-dwim 工作,您至少需要指定comment-start 和comment-end。您可以在模式声明正文中执行此操作。
(setq comment-start "#")
(setq comment-end "")
关于变量的文档:
评论开始:
"要插入以开始新评论的字符串,如果没有评论语法,则为 nil。")
评论结束:
"要插入以结束新评论的字符串。
如果 cmets 由行尾终止,则应为空字符串。"
这些变量定义在newcomment.el 定义comment-dwim 等的同一个内置包中。
阅读更多:M-x find-library enter newcomment enter
另外,如果你没有从教程中学到足够的语法表,你应该为“?\#,为“>”指定?\n,这告诉 emacs # 开始一个注释,并且换行结束注释。