[英]Format of structs using emacs c code auto-newline
我最近開始使用emacs來編輯C源代碼,並且一直在使用cc-mode的自動換行功能(c-toggle-auto-newline)。 這對於諸如函數和if / else語句之類的構造效果很好,但是當在右括號后加分號時,似乎表現得很奇怪。
在GNU Emacs 23.3中使用自動換行符,我得到:
struct foo
{
int x;
}
;
char int[2] =
{
0, 1
}
;
我想得到:
struct foo {
int x;
};
char int[2] = { 0, 1 };
我怎樣才能使結束分號保持與結束括號在同一行?
我認為啟用自動換行功能無法解決此問題。 這不是一個經過深思熟慮的功能,它只是在某些字符( ;
, {
等)之后插入換行符。 但是說真的,按和輸入鍵有多難? 任何自動化總是容易出錯的。
打開自動換行符后,您可以自定義“清除”行為。 這由c-cleanup-list
變量的內容控制。 (通過輸入Ch v c-cleanup-list
在Emacs中查看有關此問題的幫助。
具體來說,將defun-close-semi
添加到c-cleanup-list
將解決您的問題。
如果您已經在~/.emacs
文件中定義了自定義樣式,則可能可以找出方法。 否則,更改此設置的最簡單方法是通過Customize
。 在幫助緩沖區(運行Ch v c-cleanup-list
)中,最后一行將具有自定義此變量的鏈接。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.