如何在Emacs中显示缩进指南?

Tho*_*tep 39 emacs indentation

我正在尝试切换到Emacs作为我的主要源代码编辑器.我真的很想念一件事(在更简单的编辑器中很常见) - 缩进指南(显示缩进级别的不显眼的垂直线).Emacs能够显示它们吗?

ant*_*onj 78

highlight-indentation为此目的创建了一个函数,代码在github上.

highlight-indentation没有前缀参数的情况下调用时,当前缩进级别是从主模式(python,ruby和基于cc模式的语言)中天真猜测的.仅适用于空间缩进.自定义highlight-indent-face以更改缩进线的外观.

示例(ruby,python): Ruby,Python示例

我还经常使用这个代码片段来折叠大于当前行的缩进级别的所有代码.这是一个快速概述大纲的好方法.

(defun aj-toggle-fold ()
  "Toggle fold all lines larger than indentation on current line"
  (interactive)
  (let ((col 1))
    (save-excursion
      (back-to-indentation)
      (setq col (+ 1 (current-column)))
      (set-selective-display
       (if selective-display nil (or col 1))))))
(global-set-key [(M C i)] 'aj-toggle-fold)
Run Code Online (Sandbox Code Playgroud)

  • 为了自动为JavaScript和Python文件加载这个,我在我的.emacs中添加了以下内容:`(require'poport-indentation)(add-hook'python-mode-hook'pocus-indentation-mode)(add-hook'js2 -mode-hook'intecely-indentation-mode)` (7认同)
  • 嗨,我已将此添加到我的.emacs中,但似乎我的python文件看起来与屏幕上的相同.我没有看到你的例子中的任何缩进行.你能建议吗? (2认同)
  • 切换折叠为+1.注意其他人,如果启用`highlight-indentation-mode`并且看不到任何内容,可能是因为你正在使用*tabs*. (2认同)
  • 这很棒......但它是否有可能使它看起来像一条线或类似于边缘点的东西? (2认同)
  • 将 highlight-indentation-face 的字体设置为 Arial 会使垂直线变细:`(set-face-font 'highlight-indentation-face "Arial")` `(set-face-background 'highlight-indentation-face "# E0E0E0")``(set-face-attribute 'highlight-indentation-face nil :height 54)` (2认同)

小智 10

现在有一种称为highlight-indent-guides的模式,它似乎工作得很好。

  • 非常好的模式。最近在梅尔帕。应该是新接受的答案! (2认同)

dan*_*poe 5

据我所知,目前还没有人为Emacs实施缩进指南.您可以获得的最接近的是使用空白包显示 TAB,请参阅显示具有不同字符的选项卡(Emacs).