【问题标题】:Scheme editing in Emacs - modes and keyboard layoutEmacs 中的方案编辑 - 模式和键盘布局
【发布时间】:2012-03-18 10:18:36
【问题描述】:

最近我开始使用 Emacs 作为我的 Scheme (Lisp) 编辑器。我正在考虑应该使用哪些扩展来获得最佳性能。目前我正在使用Paredit,它有很大帮助。我知道 Emacs 有许多 Scheme 扩展:GeiserQuack 来命名这两个看起来很流行的,还有EmacsWiki lists many more。你们用过哪些,你觉得哪些最好?目前我最大的问题是缺少括号着色,这使得它们很难在视觉上配对 - 当你有一行以 ))))))))) 结尾的代码时,缩进是不够的。

我也在考虑如何改进 Emacs 的键盘布局,以便在 Scheme 编辑中做得更好?我在CLiki 上找到了一些很好的建议。我在键盘上用 () 交换了 [],这很有帮助。我也在考虑交换Alt and Ctrl keys

您还有什么其他提示和建议可以让您在 Emacs 中更轻松地编辑 Scheme 吗?

【问题讨论】:

    标签: emacs lisp scheme


    【解决方案1】:

    我发现rainbow delimiters 模式非常有助于突出显示不同级别的括号。

    在帮助我编写 lisp 的其他模式中,hideshow mode 用于折叠 sexps,slime 主要用于 Common Lisp,但我也在方案中使用它的缩进功能,称为 solarized 的低对比度颜色主题我的眼睛不再疲劳,而且vim mode 发生了严重的变异,这让我可以通过编辑模式来管理我的键绑定。

    【讨论】:

      【解决方案2】:

      我在我的 .emacs 中使用 show-paren-mode,这是一种次要模式:

      (show-paren-mode t)
      (setq show-paren-delay 0)
      (setq show-paren-style 'expression) ; alternatives are 'parenthesis' and 'mixed'
      

      要修改的相关面孔是show-paren-matchshow-paren-mismatch

      它只在点位于它之前或之后时突出显示一个性,但我喜欢它不是那么直截了当。

      【讨论】:

        【解决方案3】:

        我使用autopair 来获得正确的括号,show-paren-mode 来查看 s 表达式的结尾和开头,expand-region 来标记 s 表达式(它的作用远不止于此)。

        【讨论】:

          【解决方案4】:

          我认为随着您不断使用 paredit,您可能会发现对括号着色的需求越来越少。例如,在任何 sexp 中输入 ')',开头和结尾的括号会立即突出显示;然后点将移动到sexp的末尾。能够轻松导航嵌套的 sexp 结构 - 例如,使用 C-M-u 和 C-M-d 上下导航一个括号级别 - 还消除了一些视觉配对括号的需要。

          【讨论】:

          • 暂时高亮括号只是一点帮助。我发现 DrRackets 突出显示非常有用,我想在 Emacs 中获得类似的结果 - 为括号着色或突出显示整个 sexp。
          • @killy Try C-M-u- -- 突出显示最里面的性别(并将其设置为杀死、复制等) C-M-u-u- 突出最里面的两个性别等,等等
          猜你喜欢
          • 1970-01-01
          • 2012-05-25
          • 2011-12-10
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多