我是emacs的新手,它的縮進讓我開心。它爲自己的好處太聰明瞭;它(錯誤地)認爲它知道我想如何格式化我的源代碼,但是我沒有時間去追逐每一種我編寫代碼的不同語言的每種模式;並且許多這些語言根本沒有啓用任何模式。如何在所有模式下在emacs中獲得自動縮進(不是智能縮進)
這裏的行爲,我想:
- TAB插入縮進
- RET插入新行,然後拷貝從上一行開始的空白字符的第一個非空白字符,或行尾,以較早者爲準
- DEL(退格鍵)在行起始和第一個非空白字符之間的空白文本/行尾結尾刪除一個縮進如果可能,否則單個字符像正常
- 上{
- 沒有自動取消縮進上}
- 事實上,沒有聰明的笨蛋縮進行爲隨時隨地,只需前行的縮進上RET複製沒有自動縮進。
- 要對每個源文件格式配置兩個變量:顯示選項卡寬度,以及的內容縮進。最好這些可以配置爲隨機源代碼格式,而不必爲它們編寫主要模式,除非寫入主要模式是包含兩個
setq
的.emacs中的一行。
這會讓我在所有語言中都符合邏輯和一致的行爲。這將把代碼格式化的工作留給我,但沒關係,我已經這樣做了20年,並且我知道如何製作其他宏,以使其更有效率。更重要的是,它使我擺脫了無窮無盡的配置設置,試圖讓自動行爲適合我的偏好。而且我的宏可以依賴一致的行爲,所以它們可以在所有模式下正常工作。
以上可能嗎?其他人確實有過這樣做嗎?那裏有一些小模式嗎?
如果你不喜歡擺弄那麼Emacs是不適合你:)。 但嚴重的是,讓您的問題更具信息性:添加不起作用的模式。 我對Emacs至少使用了15種不同的編程模式,它們大多數都很棒。 或者,如果您想放棄所有模式並堅持基本模式,請概述基本模式的 特定功能,這些功能不適用於您。 –
@ abo-abo我不想丟失語法突出顯示或插入諸如自動完成之類的東西。但是在過去的兩個週末,我花了超過15個小時試圖將emacs打成合理的形狀,並且它仍然不適合在基本模式下編輯C和大括號分隔的語言。 –
完成例程也是標籤例程令人沮喪。我反彈TAB自插入命令和反彈C-(C-)縮進tab命令,並設置tab-always-indent完成,所以我可以得到例如.emacs中的elisp完成,但這也意味着C- 嘗試自動格式化。將完成和代碼格式綁定到同一個函數的想法是什麼? –