Автоматичният отстъп на Emacs върху последователни скоби не работи добре:
int main() {
something(int i)(
"test", "something"
);
}
Как да коригирате този отстъп, за да бъде като нормален отстъп:
int main() {
something(int i)(
"test", "something"
);
}
информация за основния режим:
- major-mode е променлива, дефинирана в „C изходния код“.
- Стойността му е „c++-mode“
РЕШЕНИЕ:
Благодаря, @pickle rick и @0x5453,
(c-add-style "cc-style"
'("linux" ;; it can be google or k&r or other c-style.
(c-basic-offset . 2)
(c-offsets-alist
(arglist-close . c-lineup-close-paren))))
(add-hook 'c++-mode-hook
(lambda()
(c-set-style "cc-style")))
'arglist-close
вc-offsets-alist
. Моят е настроен на+cc-lineup-arglist-close
, което изглежда съответства на поведението, което търсите. (Въпреки че въз основа на описанието на тази функция изглежда, че трябва да се държи като първия ви пример, така че може да има още нещо.) - person 0x5453   schedule 14.11.2019c-offsets-alist is a variable defined in ‘cc-vars.el’. Its value is nil.
- person mortymacs   schedule 14.11.2019C-h v c-offsets-alist
и след това да търситеarglist-close
ръчно. ИлиM-S-z (assq 'arglist-close c-offsets-alist)
, за да получите стойността директно. Обърнете внимание, чеc-offsets-alist
е локален за буфер и се задава само когато сте в един от базираните на C режими, така че във вашия случай ще трябва да го проверите от буфер, който в момента е вc++-mode
. - person 0x5453   schedule 14.11.2019