emacs中完全清晰的标签和空格?

时间:2009-06-09 01:49:00

标签: emacs indentation

我的问题标题是对sane tabs in emacs的引用。

基本上我想要的是全局设置标签和缩进 一些统一的方式。我觉得emacs比TextMate好多了 或BBEdit,但他们处理压缩的方式非常简单而且很棒 为了我的目的。在emacs中,如果你使用一些选项卡/空间方案 与你使用的小模式强制执行的方案不同 麻烦。

当我按回车键时,我想移动到下一行缩进 使用标签的正确位置。如果我可以吃蛋糕也可以吃它 喜欢在组成文件的其余部分时使用空格缩进 那样。

我也试过这些:
doing tabs in emacs
force emacs to use tabs

感谢任何可以帮助我实现这一目标的人。

-Mike

4 个答案:

答案 0 :(得分:4)

也许(global-set-key (kbd "RET") 'newline-and-indent)是你想要的? (或reindent-then-newline-and-indent如果可用,或者您只需点击C-j而不是Enter键。)

答案 1 :(得分:2)

对于这部分问题:

  

如果我可以吃我的蛋糕并且也可以吃它,我希望在剩下的时间里使用空格缩进   文件以这种方式组成。

这样做你想要的吗?

(defun dtrt-indent ()
  (setq indent-tabs-mode  
        (save-excursion
          (goto-char (point-min))
          (search-forward "\t" nil t))))
(add-hook 'text-mode-hook #'dtrt-indent)
(add-hook 'c-mode-hook #'dtrt-indent)
; etc for all modes you care about

因此,如果缓冲区中有任何选项卡,请使用制表符缩进;如果没有制表符,则使用空格缩进。

答案 2 :(得分:0)

如果你按照描述进行设置:

(setq indent-tabs-mode t)
(setq-default indent-tabs-mode t)
(setq tab-width 4) ;; 8 is way too many
(setq default-tab-width 4) ;; 8 is way too many
(global-set-key (kbd "RET") 'newline-and-indent)

indent-tabs-mode事件将通过使用TABS和SPACES来组成所需的缩进(由单个模式定义),告诉emacs创建缩进。这意味着,如果您想要插入TAB而不是TABS / SPACES,则需要将模式配置为使用tab-width作为缩进。

例如,如果您使用c-mode并选择cc-mode作为缩进样式(使用C-c .选择),使用4作为缩进值,newline-and-indent将插入空格。

总结:

  1. 检查您的模式是否使用tab-width作为缩进
  2. 检查您的模式是否覆盖indent-tabs-modepython-mode似乎这样做了)
  3. 虽然我个人不喜欢TABS在你的旅途中好运:))

答案 3 :(得分:0)

最好的策略是说服您选择的编程模式  以你喜欢的方式缩进事物。这通常很容易;我是  关于缩进的挑剔和我的emacs总是做正确的事情  自动。 (这意味着“缩进区域”也总是如此  我想要什么,这很方便。)

相关问题