egorius: (Default)
egorius ([personal profile] egorius) wrote2009-02-18 06:45 pm

День с 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овских плагинах разберусь, и что-нибудь юзабельное сделаю.

[identity profile] hardsign.livejournal.com 2009-02-19 06:28 pm (UTC)(link)
Ждём инструкций_по...
Правдо, непонятно_на :)

[identity profile] egorius.livejournal.com 2009-02-19 08:55 pm (UTC)(link)
Этот момент меня тоже немного смущает... Но почему бы и_не?