Как мне остановить автоформатирование в режиме emacs cperl? - PullRequest
1 голос
/ 27 февраля 2009

Когда я делаю отступ в области в режиме cperl

if ($x) { next; }

Emacs переформатирует его в:

if ($x) {
  next;
}

Как я могу заставить это прекратить это делать?

Примечание: в вопросе изначально говорилось, что это переформатирование происходит во время восстановления У меня есть настройки янки для отступа региона.

Ответы [ 5 ]

5 голосов
/ 27 февраля 2009
(setq cperl-break-one-line-blocks-when-indent nil)
2 голосов
/ 27 февраля 2009

Если вы не хотите, чтобы он автоматически форматировался при вводе кода такого типа, просто измените привязки {} на self-insert-command вместо perl-electric-terminator.

2 голосов
/ 27 февраля 2009

Я не могу найти ничего в cperl-mode, который бы это делал. Попробуйте запустить emacs без настроек:

$ emacs -q

и затем включите режим cperl в буфере scratch :

M-x cperl-mode

Вставьте свой текст; он должен выглядеть как оригинал (то есть все в одной строке). Затем начните настраивать режим cperl:

M-x customize-group<RET>cperl<RET>

установка каждой переменной отдельно для текущего сеанса и попытка вставки между каждой настройкой. Если вы вдруг обнаружите поведение, которое вы видите, у вас есть отправная точка, чтобы посмотреть дальше (это может быть комбинация опций).

Если вы полностью настроили cperl, и он по-прежнему не работает "неправильно", вам нужно начать искать причины, по которым другие пакеты могут его вызывать. Это может занять некоторое время ....

0 голосов
/ 27 февраля 2009

Не похоже на то, что я отвечаю на вопрос, почему бы просто не сделать это?

next if $x;

Тот же код, тот же эффект и такой же читабельный (по крайней мере для меня), но я уверен, что emacs не будет пытаться его переформатировать.

0 голосов
/ 27 февраля 2009

Это не работает для меня, я просто попробовал это с различными настройками в подменю Toggle ... в меню Perl. Может ли быть что-то еще, кроме режима Cperl, что делает это возможным?

...