[英]How do I auto-indent in emacs when opening a file?
我目前正在與一個團隊一起使用Java。 每當我們共享文件時,它們的文件總是在我的計算機上怪異地縮進,並且我必須全部選中它們或Cx h CM-。
有沒有一種方法可以使emacs在我每次打開文件時自動進行格式化(自動制表整個文件),因此我不必每次都輸入該宏?
非常感謝你!
把它放在你的〜/ .emacs中:
(add-hook 'java-mode-hook (lambda () (indent-region (point-min) (point-max))))
這注冊了進入Java主模式時要執行的函數,並且該函數是lambda表達式,用於縮進(point-min)
和(point-max)
之間的區域,即整個緩沖區。
下次啟動emacs時將加載它。 要使其進入運行的會話,請將光標置於其后,然后按Cx Ce。
與非emacs編碼器一起在emacs中工作時,我遇到了類似的問題。 由於emacs的默認標簽縮進設置為8列而不是4列,因此我看到了“怪異”。將標簽寬度設置為4應該可以解決此問題。 您可以輸入Mx空格模式來查看您的空格字符,看看是否是問題所在。 如果是這樣,您可以將以下內容添加到您的init文件中進行修復:
(setq-default tab-width 4) ;; emacs version 23.2+
(setq default-tab-width 4) ;; emacs versions prior to 23.2
當我需要重新縮進文件時,我使用Mx iwb從我的初始化文件中調用以下函數:
(defun iwb ()
"indent whole buffer"
(interactive)
(delete-trailing-whitespace)
(indent-region (point-min) (point-max))
(untabify (point-min) (point-max)))
可以為該功能添加一個掛鈎,類似於Wintermute的響應。
(add-hook 'java-mode-hook #'iwb)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.