2010-11-03 104 views

回答

8

这里的“缩进整个缓冲区”的代码我在~/.emacs.d/defuns.el文件放置。我采取了额外的步骤,并将其绑定到快捷键C-x \。这个也会清除所有悬空的空白区域,并将制表符转换为其空间等效表示。

(defun indent-buffer()                                        
    "Indents an entire buffer using the default intenting scheme."                             
    (interactive)                                          
    (point-to-register 'o)                                       
    (delete-trailing-whitespace)                                      
    (indent-region (point-min) (point-max) nil)                                  
    (untabify (point-min) (point-max))                                    
    (jump-to-register 'o))                                       

(global-set-key "\C-x\\" 'indent-buffer)                                   

编辑,下面结合@JSONs建议会给你一个defun定义,看起来像这个:

(defun indent-buffer()                                        
    "Indents an entire buffer using the default intenting scheme."                             
    (interactive)                                          
    (save-excursion                                         
    (delete-trailing-whitespace)                                     
    (indent-region (point-min) (point-max) nil)                                  
    (untabify (point-min) (point-max))))                                   

我测试了这一点,它的工作原理就像以前一样。感谢您指出了JSON。

+0

而不是指向注册表和跳转到注册表,使用save-excursion来包装重新格式化块可能会更好。 – JSON 2010-11-03 23:59:44

4

选择整个缓冲区,做M-X缩进区域

this guide

28

C-x h C-M-\

这两个命令选择整个缓冲器和运行indent-region