Emacs中的原始缩进

时间:2012-03-16 17:35:29

标签: emacs indentation

Emacs是否有一个简单的原始缩进模式可以执行以下操作:

  1. 当我转到新行(点击 Enter )时,复制上面一行用于缩进的空白区域

  2. 当我按Tab键时,在我按Tab键的位置插入可配置的缩进字符(空格/制表符)。只需插入空格/标签,不要做“智能” - 注释。

  3. [可选]当我按 Shift + Tab 时,从当前行的开头删除一个缩进字符

  4. [可选]缩进/取消选择的块。

  5. 问题是:这样的模式是否存在?如果,它的名字是什么?

    我不想开始讨论“为什么我需要这种行为?”除了这个话题之外,我不需要“聪明”的选择。

    我只想要一个简单的愚蠢模式......

    Emacs已存在多年。在某个时间某个地方的某个人一定要问这个问题,并且可能已经写了一个模式。

    我经历了很多“与缩进相关”的话题......没有。每个人都坚持“你应该服从Emacs,而不是Emacs应该服从你”。

2 个答案:

答案 0 :(得分:4)

你去了,我刚写了:https://gist.github.com/mishoo/5487564

答案 1 :(得分:2)

1。fundamental-mode中,您可以将 RET 重新绑定到newline-and-indent

(local-set-key (kbd "RET") 'newline-and-indent)

2. 要使 TAB 插入制表符/空格而不是缩进,您应该自定义tab-always-indent变量:

(setq tab-always-indent nil)

要在制表符和空格缩进之间进行选择,请自定义indent-tabs-mode变量。

(setq indent-tabs-mode t)   ;; for tab-based indentation
(setq indent-tabs-mode nil) ;; for space-based indentation

我不知道有任何标准方法可以分数 3。 4。,但是开发小型自定义函数来执行此操作应该不会太困难