2010-11-03 66 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