Emacs重新定义整个C++缓冲区

fak*_*ake 16 emacs indentation

我有一个c ++代码文件,但有一个非常难看的indetation.我如何告诉emacs重新应用缩进文件?

eGl*_*yph 31

C-x h C-M-\

这两个命令选择整个缓冲区并运行indent-region.


Tim*_*awa 8

这是我放在~/.emacs.d/defuns.el文件中的"缩进整个缓冲区"代码.我采取了额外的步骤并将其绑定到快捷键C-x \.这个也将清除所有悬挂的whitspace以及将制表符转换为它们的空间等效表示.

(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)                                                                                                                                           
Run Code Online (Sandbox Code Playgroud)

编辑,在下面结合@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))))                                                                                                                                           
Run Code Online (Sandbox Code Playgroud)

我测试了它,它像以前一样工作.谢谢你指出了JSON.


NG.*_*NG. 5

选择整个缓冲区并执行Mx缩进区域

请参阅本指南.