簡體   English   中英

打開文件時如何在emacs中自動縮進?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM