Re: indent@emacs
Alex Kicelew -> debian-russian@lists.debian.org @ 04 Dec 2005 19:41:59 +0300:
AK> А нет ли в емаксе какого-либо аналога вимовского смарт-индента?
AK> Примеры, когда мне этого хотелось бы:
AK> - емакс ошибся в структуре сложной программы. Все, начиная с ошибочно
AK> понятой строки будет им отформатировано неправильно, со сдвигом. У
AK> вима тоже такое бывает, но там я могу руками поправить
AK> форматирование ошибочной строки, и дальше он будет плясать от этой
AK> строки, а емакс хочет форматировать от начала буфера и ручное
AK> перерасположение любой промежуточной строки игнорирует.
В норме ровно наоборот. Возможно, от языка зависит.
AK> - php. Php-mode для емакса есть, но в ней он соглашается форматировать
AK> только текст внутри <?...?>. Весь не-php-ный текст форматируется с
AK> одной колонки, что выглядит бредово.
AK> <html>
AK> <head>
AK> <title>...</title>
AK> </head>
AK> <body>
AK> <?
AK> if ($qwe) {
AK> ?>
AK> <table>
AK> <tr>
AK> ...
AK> </tr>
AK> </table>
AK> <?
AK> }
AK> ?>
AK> каждую из не-php-ных строчек, конечно, можно оттьюнить пробелами
AK> вручную, но это ж _каждую_, причем от позиции последнего ?>, а не от
AK> позиции предыдущей строки.
Сдается мне, что так и должно быть. Если ты считаешь иначе - читай
либо документацию, либо исходник. Но вообще с html проще застрелиться,
чем правильно отформатировать.
AK> - noweb. Егойную моду сильно смущают двойные кавычки, которые в
AK> теховской части встречаются в изобилии (~"---, например). Если число
AK> кавычек до текущей позиции нечетно, оно ведет себя черт знает как.
С этим не развлекался. Тут, скорее всего, ошибка в определении режима.
Возможно, даже known - загляни в исходник.
AK> - просто файл хитрой структуры, для которой у емакса нет готовой
AK> моды. Ступенчатое форматирование, где я сам руками в нужных местах
AK> меняю отступ, а последующие строки его наследуют, пока я его вновь
AK> не изменю, меня бы устроило, но он же этого не хочет.
Тут, скорее всего, надо просто использовать не Fundamental mode, а text
или какую-нибудь на его основе. Оно настраивается. И проверить, что у
тебя делает Enter - newline или newline-and-indent.
--
Artem Chuprina
RFC2822: <ran{}ran.pp.ru> Jabber: ran@jabber.ran.pp.ru
Нужны две программы - одна с интерфейсом, а другая чтобы работу делала.
Victor Wagner в <aut24i$gct$1@wagner.wagner.home>
Reply to: