?

Log in

No account? Create an account

Ср, 18 фев, 2009, 18:45
День с vimом (история с продолжением)

Посидел несколько дней в vimе, погонял dbext, можно подводить первые результаты.

Vim понравился существенно больше, чем не понравился. Что полюбилось:

  • Классные команды, выделяющие область, ограниченную парными скобками, типа i( или a(. Они очень «интуитивные», гораздо приятнее, чем выделять область ручками.
  • PowerPointом, сиречь МогучейТочкой, следовало назвать точку в vimе. Экономит много сил и доставляет удовольствие.
  • Поиск с помощью / и * на порядок удобнее, чем всякие Ctrl-F или F7 с их всплывающими окошками.
  • Виндовый порт vimа оказался по делу: он худо-бедно поддерживает мышку (удобно в табы тыкать, вместо gt) и Ctrl-C, Ctrl-V работают с виндовым клипбордом. Загадка, почему простой yank не копирует в клипборд? Было бы проще, чем изобретать "*y.

Не очень удобно:

  • Отсутствие интеграции с Фаром. В Фаре Ctrl-Tab переключает между всеми окнами редактора и панельками. Но в качестве альтернативного редактора vim запускается в отдельном окошке. Второй файл удобнее было бы открывать в том же самом vimе (меньше окошек — больше кислорода, да и yank-put удобнее делать), но из Фара это уже никак не получится — запустится вторая копия vimа.
  • Не подсвечиваются парные комананды типа begin и end. Фаровский колорер это умеет. Не исключено, что можно научить и vim, надо будет поковыряться.

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

Между делом починил ещё один напильник, связанный с русскими буквами: в обычном режиме vim по умолчанию понимает только английские буквы, поэтому в русской раскладке никакую команду ввести нельзя. Решается очень просто, созданием соответствующего langmapа. А ещё полезно объяснить vimу, что русские буквы тоже входят в состав слов, чтобы работали команды типа w. Делается заданием iskeyword.

Dbext не понравился существенно больше, чем понравился.

Попытка сделать инструмент для всех СУБД сразу привела к тому, что с Ораклом работать практически невозможно. Что плохо:

  • Как уже писал, не работает select * из «широких» таблиц. Есть мысль, что wrapperом над Плюсом тут не обойтись, надо писать свою программку взамен (привет, dbms_sql).
  • Много косяков, вызванных попытками подготовить текст для Плюса. Например, вырезание пустых строк (да, Плюс их не любит, но иногда они всё-таки нужны) или оборачивание запросов без удаления точки-с-запятой.
  • Нужен режим, когда редактируемый файл целиком, безо всяких изменений, скармливается Плюсу (например, серия команд для создания каких-нибудь объектов БД). Причём хорошо бы с возможностью прыгнуть в код на нужную строчку, если произошла ошибка.
  • Нет команды для просмотра плана запроса.
  • Нет возможности загрузить в редактор, например, тело пакета по его имени.

В общем, сырость и кривость. Попробую на досуге поковырять dbext. Если повезёт, и в vimовских плагинах разберусь, и что-нибудь юзабельное сделаю.

Чт, 19 фев, 2009 14:36 (UTC)
(Anonymous): Большой Силы проявление чувствую Я

"А не будет ли столь любезен многоуважаемый Джинн..."
Не осталось ли в природе СУБД с сетевой организацией (ну там кортежи-аттрибуты) и если нет, то как сейчас с этим модно бороться?
Выражаю потребность: есть набор записей более-менее произвольного вида, состоящих из пар ((поле)::=(значение)]+
Требуется организовать поиск в виде транзитивного замыкания, т.е. брать произвольное (значение) и использовать его как (поле) для поиска.
Задача максимум - навести множественное отношение синонимичности (поле) = {(набор полей) } и тоже искать.
Ммм? :Е
СП

Чт, 19 фев, 2009 15:32 (UTC)
egorius: Мощно задвинул

Ты эта, пальцем покажи. Что, собственно, надо искать? Может, пример какой-то есть незамысловатый?..

Чт, 19 фев, 2009 18:28 (UTC)
hardsign

Ждём инструкций_по...
Правдо, непонятно_на :)

Чт, 19 фев, 2009 20:55 (UTC)
egorius

Этот момент меня тоже немного смущает... Но почему бы и_не?