LINUX.ORG.RU

msf-abbrev


0

0

Нашел недавно одно очень полезную программку под емакс -- msf-abbrev. Предназначена она для работы с сокращениями (abbrev). То есть, вводишь определенное слово, если это слово совпадает с определенным сокращением, то вместо него вставляется другой текст.

Чем же интересен msf-abbrev?

* Поддержка программируемых сокращений (в принципе, возможность аналогична предоставляемым такими библиотеками как tempo или skeleton, но реализована гораздо более удачно). Подробности на сайте разработчика.

* Каждое сокращение определяется в отдельном файле (его имя определяет ключевое слово сокращения). Сокращения, которые работают только в каком-то определенном режиме (mode), хранятся в отдельном каталоге, имя которого совпадает с названием режима. Например, сокращения, которые используются во время кодировки на С хранятся в каталоге `c-mode'. ИМХО, такой способ управления сокращениями гораздо удобней, чем определять все сокращения в одном файле.

Пользуясь второй возможностью, легко написать скрипт, который из списка функций (правда, немножко обработанного sed'ом для удобства ;)) какой-то библиотеки генерирует сокращения для всех ее функций, что и продемонстрировано на данном скриншоте. В первом окне код скрипта, во втором -- тестовый код, в котором происходит вставка сокращения `qsortx' (между аргументами можно переключаться с помощью клавиш TAB и S-TAB). В нижнем окне -- непосредственно код соответствующего сокращения.

Не знаю пока, удобно ли будет использовать эти сгенерированные сокращения, но идея в любом случае интересная :)

Дом. страница: http://www.bloomington.in.us/~brutt/msf-abbrev.html.

>>> Просмотр (1024x768, 21 Kb)

Re: msf-abbrev

Вот именно поэтому я и использую vim -- там abbrev есть бех плагинов:)

ivon ()

Re: msf-abbrev

>Нашел недавно одно очень полезную программку под емакс -- msf-abbrev. Предназначена она для работы с сокращениями (abbrev).

В виме тоже такая есть :) Правда, не такая фунциональная, но зато встроенная :)

php-coder ★★★★★ ()
Ответ на: Re: msf-abbrev от php-coder

Re: msf-abbrev

В емаксе тоже есть встроенные abbrev'ы (точнее, входящие в стандартную поставку). Эта программка работает поверх стандартных.

nsav-ng ()

Re: msf-abbrev

Ion3 жжот!

anonymous ()

Re: msf-abbrev

Да, удобная фишка!
За хорошо настроенный емакс - респект :)

godexsoft ()

Re: msf-abbrev

>Каждое сокращение определяется в отдельном файле (его имя определяет ключевое слово сокращения). Сокращения, которые работают только в каком-то определенном режиме (mode), хранятся в отдельном каталоге, имя которого совпадает с названием режима.

Ну и глупо. Лучше б один файл для одного режима.

anonymous ()

Re: msf-abbrev

Отличный скрин прирождённого емаксера :)

hbee ★★★ ()
Ответ на: Re: msf-abbrev от anonymous

Re: msf-abbrev

> Ну и глупо. Лучше б один файл для одного режима.

Если сокращений достаточно много, то лучше все же в отдельных файлах. Сейчас у меня в сишном режиме 1300 аббревов. прикинь, какая была бы каша, если бы они хранились в одном файле?

nsav-ng ()
Ответ на: Re: msf-abbrev от nsav-ng

Re: msf-abbrev

> 1300 аббревов

а ты их все помнишь?

uj2 ★★★ ()
Ответ на: Re: msf-abbrev от uj2

Re: msf-abbrev

большинство аббревов совпадают с именами библиотечных функций (только к ним добален суффикс 'x'). Например, memsetx, qsortx. Как я уже говорил, аббревы сгенерированные скриптом.

nsav-ng ()
Ответ на: Re: msf-abbrev от nsav-ng

Re: msf-abbrev

>Сейчас у меня в сишном режиме 1300 аббревов.

:D Маньяк :)

php-coder ★★★★★ ()
Ответ на: Re: msf-abbrev от hbee

Re: msf-abbrev

Емаксерами не рождаются. Ими девианти^H^H^H^H становятся :)

AP ★★★★★ ()
Ответ на: Re: msf-abbrev от php-coder

Re: msf-abbrev

> :D Маньяк :)

Сейчас прийдет devinull с Orlangoor'ом и скажут, что мне надо найти девушку :)))

nsav-ng ()

Re: msf-abbrev

а что круче, vi или emacs? :)

rys ()
Ответ на: Re: msf-abbrev от nsav-ng

Re: msf-abbrev

>Сейчас у меня в сишном режиме 1300 аббревов. прикинь, какая была бы каша, если бы они хранились в одном файле?

Видимо, у нас совершенно разные понятия о том, что такое "каша". Полечу в свою галактику, а то у вас тут физика какая-то дурацкая...

anonymous ()
Ответ на: Re: msf-abbrev от rys

Re: msf-abbrev

> а что круче, vi или emacs? :)

Понурая свинка глубок корень роет...

hbee ★★★ ()

Re: msf-abbrev

Аффтар, плиз, напиши название шрифта - мне понравилссо, самому подбирать времи нет. Заранее, пасиб.

anonymous ()
Ответ на: Re: msf-abbrev от nsav-ng

Re: msf-abbrev

О, заодно еще ткните нуба ссылкой или советом, как заставить работать хоткеи в русской раскладке :)

anonymous ()
Ответ на: Re: msf-abbrev от anonymous

Re: msf-abbrev

(set-input-method 'russian-computer)

Переключаться между раскладками нужно с помощью C-\. Если не хочешь такой клавишей, то можно перебиндить функцию toggle-input-method, например

(global-set-key "C-1" #'toggle-input-method)

nsav-ng ()

Re: msf-abbrev

хехе, не хорошо пропагандировать cut&pase стиль программинга :), хотя я сам пользовал раньше подобные тулзы .. с другой стороны подобные тулзы очень полезны при написании маленьких независимых прог, типа юниксовых ls, cat, etc ..

lg ★★ ()
Ответ на: Re: msf-abbrev от lg

Re: msf-abbrev

> хехе, не хорошо пропагандировать cut&pase стиль программинга :)

Что ты имеешь в виду? При чем тут cut&paste?

nsav-ng ()
Ответ на: Re: msf-abbrev от lg

Re: msf-abbrev

Кстати, эта тулза в xemacs не работает. Еще в xemacs жутко убогий интерфейс к gdb, в cvs'ном емаксе гораздо лучше. Если удастся потрировать эти две фичи на xemacs, то я на него окончательно переползу. :)

nsav-ng ()
Ответ на: Re: msf-abbrev от nsav-ng

Re: msf-abbrev

при том что шаблонизация это ни что иное как cut&paste программинг .. нужно стремиться к тому чтобы код не повторялся тем самым нужда в шаблонах отпадет ..

lg ★★ ()
Ответ на: Re: msf-abbrev от nsav-ng

Re: msf-abbrev

> Кстати, эта тулза в xemacs не работает.

хм, а на сайте у него написано что работает .. сейчас проверим ..

> Еще в xemacs жутко убогий интерфейс к gdb, в cvs'ном емаксе гораздо лучше.

там их куча .. какой именно?

lg ★★ ()
Ответ на: Re: msf-abbrev от nsav-ng

Re: msf-abbrev

у меня заработала .. в чем проблема у тебя, почему не работает?

lg ★★ ()
Ответ на: Re: msf-abbrev от lg

Re: msf-abbrev

> при том что шаблонизация это ни что иное как cut&paste программинг .. нужно стремиться к тому чтобы код не повторялся тем самым нужда в шаблонах отпадет ..

А, в этом плане... Тогда асолютно согласен. Сам всегда следую этому принципу. Многие мой код, правда, после этого читать не могут :) Но это уже их проблемы.

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

nsav-ng ()
Ответ на: Re: msf-abbrev от lg

Re: msf-abbrev

> там их куча .. какой именно?

Я пробовал из пакета debug, он очень древний :( Пробовал из emacscvs -- не прикрутился. На емаксвики ничего другого не нашел.

nsav-ng ()
Ответ на: Re: msf-abbrev от lg

Re: msf-abbrev

> у меня заработала .. в чем проблема у тебя, почему не работает?

Работает не всё. Например, такой аббрев

exit(<field "int STATUS">)<endpoint>

не работает как надо. Просто вставляется exit() и все. Посмотри демку на сайте, как все работает в обычном емаксе.

nsav-ng ()
Ответ на: Re: msf-abbrev от nsav-ng

Re: msf-abbrev

хехе, вместо ПРОБЕЛ нажимай C-x '

типа

e x i t x C-x '

lg ★★ ()
Ответ на: Re: msf-abbrev от lg

Re: msf-abbrev

Вот блин. Спасибо, буду знать куда копать дальше.

Если еще подскажешь хороший интерфейс для gdb, так я вообще тебе благодарен по гроб жизни буду.

/me мечтает перелезть таким наконец-то на xwem...

nsav-ng ()
Ответ на: Re: msf-abbrev от nsav-ng

Re: msf-abbrev

дело в том что эта ''прикольная фича в GNU Emacs которая правильно
abbrev экспандит при нажатии пробела'' - ни что иное как костыль от
которого избавились в XEmacs .. вот комментарии по этому поводу:

#if 1
	Fexpand_abbrev();
#else				/* FSFmacs */
	Lisp_Object sym = Fexpand_abbrev();

	/* I think this is too bogus to add.  The function should
           have a way of examining the character to be inserted, so
           it can decide whether to insert it or not.  We should
	   design it better than that.  */

	/* Here FSFmacs remembers MODIFF, compares it after
	   Fexpand_abbrev() finishes, and updates HAIRY.  */

	/* NOTE: we cannot simply check for Vlast_abbrev, because
	   Fexpand_abbrev() can bail out before setting it to
	   anything meaningful, leaving us stuck with an old value.
	   Thus Fexpand_abbrev() was extended to return the actual
	   abbrev symbol.  */
        ...<code>...
#endif /* FSFmacs */

> Если еще подскажешь хороший интерфейс для gdb

попробуй gud

> /me мечтает перелезть таким наконец-то на xwem.

и это правильно! так чтож тебе мешает  хехе? 

lg ★★ ()
Ответ на: Re: msf-abbrev от lg

Re: msf-abbrev

> попробуй gud

Блин, в xemacs'е он жутко старый. Там даже автодополнение не работает. Сейчас попробую присобачить из гнутого. Может быть, что то и выйдет.

> и это правильно! так чтож тебе мешает хехе?

Башка дурная мешает, прежде всего. Пока все заставлю правильно работать, состарюсь :( Все таки, правильно работающий редактор для меня важнее, чем правильно работающий wm.

nsav-ng ()
Ответ на: Re: msf-abbrev от nsav-ng

Re: msf-abbrev

ну и чем ddd не устраивает?

anonymous ()
Ответ на: Re: msf-abbrev от anonymous

Re: msf-abbrev

> ну и чем ddd не устраивает?

Интерфейс неудобный.

nsav-ng ()
Ответ на: Re: msf-abbrev от anonymous

Re: msf-abbrev

Мне есть чем заниматься, кроме как цветовые схемы емакса менять. Вообще-то кроме цветовой схемы ничего общего между скринами нету. Разные дистры, разные вмы, разная начинка емакса...

nsav-ng ()

Re: msf-abbrev

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

kuruu ()
Ответ на: Re: msf-abbrev от kuruu

Re: msf-abbrev

> Каким параметром задается рамка вокруг статусбара?

Не въехал в вопрос. Поконкретней, плз...

nsav-ng ()
Ответ на: Re: msf-abbrev от nsav-ng

Re: msf-abbrev

темно-серый статусбар, там где расположена информация об имени файла, дате etc. Так вот он обведен белой рамкой, как сего добиться, т.е. какой параметр за это отвечает ?

у меня пока получается только вот так http://img380.imageshack.us/img380/9457/200509222134181024x768scrot8sz.png сам когда пытался такое сделать, в итоге запутался и забил. И ещё вопрос на скрине (modeline-3d-p nil)?

kuruu ()
Ответ на: Re: msf-abbrev от kuruu

Re: msf-abbrev

В xemacs насколько я понимаю так нельзя. Только в gnu emacs. Тоже буду благодарен, если кто скажет, как это сделать в xemacs

anonymous ()
Ответ на: Re: msf-abbrev от kuruu

Re: msf-abbrev

Хз, я это не настраивал. Все из коробки работает. По части настройки внешнего вида меня лучше не спрашивать. Я человек абсолютно безвкусный, поэтому никогда не занимаюсь подобными вещами.

nsav-ng ()
Ответ на: Re: msf-abbrev от nsav-ng

Re: msf-abbrev

2 nsav-ng ну хорошо, тогда поставлю вопрос по другому: цветовая схема не с неба же свалилась? где такую посмотреть можно в формате custom.el?

2 anonymous (*) (22.09.2005 22:29:29)

ну на скрине это же xemacs, а не GNU, стало быть можно =)

kuruu ()
Ответ на: Re: msf-abbrev от kuruu

Re: msf-abbrev

> 2 nsav-ng ну хорошо, тогда поставлю вопрос по другому: цветовая схема не с неба же свалилась? где такую посмотреть можно в формате custom.el?

http://www.emacswiki.org/cgi-bin/wiki/ColorTheme

> ну на скрине это же xemacs, а не GNU, стало быть можно =)

Это GNU :))

nsav-ng ()
Ответ на: Re: msf-abbrev от nsav-ng

Re: msf-abbrev

>Это GNU :))

ясно, меня видимо ввела в ступор фраза

>>Блин, в xemacs'е он жутко старый. Там даже автодополнение не работает. Сейчас попробую присобачить из гнутого. Может быть, что то и выйдет.

Теперь ясность полная, вопросы также отсутствуют

kuruu ()
Ответ на: Re: msf-abbrev от kuruu

Re: msf-abbrev

А как объемные бордеры слева и внизу убрать ?

anonymous ()
Ответ на: Re: msf-abbrev от anonymous

Re: msf-abbrev

(custom-set-variables '(modeline-3d-p nil))

kuruu ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.