[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 22:47:51 +0300:

 >>  AK> - емакс ошибся в структуре сложной программы. Все, начиная с ошибочно
 >>  AK>   понятой строки будет им отформатировано неправильно, со сдвигом. У
 >>  AK>   вима тоже такое бывает, но там я могу руками поправить
 >>  AK>   форматирование ошибочной строки, и дальше он будет плясать от этой
 >>  AK>   строки, а емакс хочет форматировать от начала буфера и ручное
 >>  AK>   перерасположение любой промежуточной строки игнорирует.
 >> В норме ровно наоборот.  Возможно, от языка зависит.

 AK> Ну, скажем так -- пытается заставить игнорировать меня. Я могу начать
 AK> (с помощью кучки C-<tab> и пробелов) новый оператор перла или php с
 AK> любой позиции, но когда я в нем наберу открывающую скобку (если она
 AK> там есть) или просто точку с запятой, которая там есть практически
 AK> всегда, уже набранный с нужной мне позиции оператор переедет туда, где
 AK> его хочет видеть емакс. А вот если я после этого еще раз, матерясь,
 AK> сдвину его туда, куда хочу я, следующую строку он действительно начнет
 AK> считать от этой.

Это то, что называется electric-.  В принципе в описаниях режимов обычно
рассказано, как отключать (равно поодиночке и всем скопом).  Проблема,
понятно, в том, что тогда он не будет электрическим вообще, так что по
завершении блока возвращать отступ на место тоже придется вручную.

С перлом получше работает cperl-mode.  Особенно - свежий...  С php не
работаю, не могу сказать.

 >>  AK>   каждую из не-php-ных строчек, конечно, можно оттьюнить пробелами
 >>  AK>   вручную, но это ж _каждую_, причем от позиции последнего ?>, а не от
 >>  AK>   позиции предыдущей строки.
 >> Сдается мне, что так и должно быть.  Если ты считаешь иначе - читай
 >> либо документацию, либо исходник.  Но вообще с html проще застрелиться,
 >> чем правильно отформатировать.

 AK> Объективно правильно -- согласен. Но возможности сделать субъективно
 AK> правильно, насколько я понимаю, нет вообще -- так? 

Смотреть надо.  Может, и можно.

 >>  AK> - просто файл хитрой структуры, для которой у емакса нет готовой
 >>  AK>   моды. Ступенчатое форматирование, где я сам руками в нужных местах
 >>  AK>   меняю отступ, а последующие строки его наследуют, пока я его вновь
 >>  AK>   не изменю, меня бы устроило, но он же этого не хочет.
 >> Тут, скорее всего, надо просто использовать не Fundamental mode, а text
 >> или какую-нибудь на его основе.  Оно настраивается.  И проверить, что у
 >> тебя делает Enter - newline или newline-and-indent.

 AK> Да, с текстовой действительно хоть что-то получается. Остался такой
 AK> вопрос. А как сдвинуть курсор на предыдущую позицию отступа? Если есть

 AK> one indented line
 AK>     next level of indentation
 AK>         one more level
 AK>         _

 AK> , и курсор стоит в позиции подчеркивания -- можно ли его сдвинуть под
 AK> `next' какой-то одной функцией?

Не находится.  И у меня есть ощущение, что эта информация у него нигде
не хранится.  Так что, если ты знаешь, какого размера у тебя отступ, то
можно, а если он разный бывает, то ой.

-- 
Artem Chuprina
RFC2822: <ran{}ran.pp.ru> Jabber: ran@jabber.ran.pp.ru

Дуля со смещенным центром тяжести



Reply to: