[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

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: