egorius: (Default)
[personal profile] egorius

Начнём, пожалуй. Cygwin у меня уже стоял, vim, соответственно, тоже. Повесил пока его в Фаре на Alt-F4 как альтернативный редактор. Люблю, знаете ли, консольный режим, а gvim с менюшкой — увольте, это какой-то идеологический бредос.

Тут нас поджидает первый напильник: хайлайтинг. Такое ощущение, что в консольном режиме никто не работает, потому что ни одной приличной цветовой схемы мне обнаружить не удалось. Все пёстрые до тошноты, как будто специально для отсеивания слабых духом. Но мы-то понимаем, что схемы настраиваются вполне интуитивным образом: берём за образец какой-нибудь файл из /usr/share/vim/vim72/colors/ и подкручиваем его по собственному разумению. Лично я предпочитаю чёрный фон, серо-белый текст и синие комментарии, а яркие цвета приберегаю для отдельных случаев типа выделения слов при поиске. Дальше в .vimrc добавляются «:syntax on» и «:colo egorius» и временно наступает щастье.

Теперь скачиваем свежий dbext, копируем внуть vimа. Если не забыть сказать :helptags, как написано в инструкции по установке, то «:help dbext» не даст помереть дураком. А ещё лучше «:tab help».

Пробуем выполнить тестовый запросик: «:Select * from dual». Вот и второй напильник: в окошке результата получаем «SP2-0310: не в состоянии открыть файл "/tmp/v372235/dbext.sql"». Ну в самом деле, откуда виндовому Плюсу знать о файловой системе цыгвина?.. Лечим просто: скачиваем cвежий виндовый порт vimа, на текущий момент это версия 7.2.

И немедленно натыкаемся на третий напильник: неправильно отображаются русские буквы. Сначала я подумал, что проблема с кодировкой, но картинка выглядела странно: часть букв была на своих местах, а некоторых не было вовсе. Верный признак кривизны точечного шрифта в консоли, лечится заменой его на Lucida Console в свойствах окошка. Странно только, что цыгвиновский vim этим не болел.

Ну да ладно, копируем в новый vim файлик хайлайтинга и dbext, попутно отмечая, что для таких дел выделен специальный каталог vimfiles, а .vimrc зачем-то переименован в _vimrc (вроде винда ничего не имеет против файлов, начинающихся с точки).

Что на этот раз? «:Select * from dual»

D
-
X

Получилось! Ну-ка, ну-ка, попробуем describe. Для этого пишем в окошке «dual», встаём на него курсором и набираем \sdt (типа Sql Describe Table). Ой, в окошке результата пусто. Ну хорошо, селекты-то работают, попробуем вывести что-нибудь из моей любимой таблицы fa_books (118 столбцов). Опа, опять пусто. Вот и он, четвёртый напильник.

Что же происходит? Вспоминаем из второго напильника, что dbext создает временный файл, который скармливает Плюсу. Посмотрим, во что он превратил наш запрос. В винде временный файл нашёлся, что логично, в %TEMP% и помимо запроса содержал ещё несколько строк Плюсовых установок, из которых самые интересные «set wrap off» и «set linesize 10000». То есть товарищи полагают, что если установить потенциально бесконечную длину строки и отменить переносы, то Плюс отформатирует результаты так, чтобы одна строка таблицы была одной строкой текста. Щаз! Во-первых, он ломается на длинных строках и от огорчения не выводит вообще ничего, во-вторых, это неблаготворно сказывается на describe. Как расплывчато утверждает документация, «DESCRIBE output columns are typically allocated a proportion of the linesize... You can define LINESIZE as a value from 1 to a maximum that is system dependent».

К счастью, не составляет труда заглянуть в код плагина и понять, что заголовок, прилепляемый к запросу, задаётся переменной g:dbext_default_ORA_cmd_header, которую, следовательно, можно переопределить в .vimrc. К несчастью, непонятно, на что её переопределять. Вечер, потраченный на поиск волшебного сочетания параметров, результата не дал. Пока склоняюсь к мысли, что придётся делать wrap on и писать wrapper, который будет переформатировать Плюсовый вывод...

Пока достаточно, потом продолжу на каком-нибудь живом примере. Как раз надо склепать небольшой отчёт, вот и попробую заставить себя сделать это, не вылезая из vimа.

P.S. Зачем я, собственно, всё это описываю? А просто интересно стало, сколько напильников нужно, чтобы заставить работать vim+dbext так, как мне удобно.

Date: 2009-02-12 09:18 pm (UTC)
From: [identity profile] sergg-rw.livejournal.com
А мне PL/SQL Developer нра...

Date: 2009-02-14 10:32 pm (UTC)
From: [identity profile] egorius.livejournal.com
Он, кстати, многим нра. Один из кандидатов на попробовать, но я всё-таки надеюсь победить dbext...

Date: 2009-04-09 09:37 pm (UTC)
From: [identity profile] sergg-rw.livejournal.com
А в Жабе (Toad) for Oracle не разбирался. Монстр, конечно, но многое может... почти все...

Date: 2009-04-10 08:37 pm (UTC)
From: [identity profile] egorius.livejournal.com
Жаб как раз из тех, что открывает сессию дольше минуты. Такой зверь мне не нужен...

Date: 2009-02-14 04:22 pm (UTC)
From: [identity profile] dimitryghost.livejournal.com
а зачем ты, собственно, в винде сидишь?

Date: 2009-02-14 10:34 pm (UTC)
From: [identity profile] egorius.livejournal.com
Стояла у меня одно время красная шапочка. Не прижилась. Бороться с текстовым редактором у меня ещё сил хватает, а вот бороться с целой системой...
Но я уже начинаю задумываться о Маке, на самом деле.

Date: 2009-02-15 03:25 am (UTC)
From: [identity profile] dimitryghost.livejournal.com
а чего там собственно бороться? ну по началу сложно, но все становится лучше и лучше

если бы в линуксе была поддержка аудио нормальная - давно бы перешел.

Date: 2009-02-15 11:07 am (UTC)
From: [identity profile] egorius.livejournal.com
Говорят, сейчас линухи далеко продвинулись в юзер-френдли-сторону... А я в своё время в течении пары вечеров не смог настроить модем и понял, что юникс мне больше нравится на сервере, в консольке, чем на рабочем месте.

Date: 2009-02-15 12:36 pm (UTC)
From: [identity profile] dimitryghost.livejournal.com
именно!
попробуй
From: (Anonymous)
Современные Линухи все сами находят, вставляют и подключают. И имеют хитрые методы для подсказки если тебе захотелось потр.. по-взрослому, а потребных компонентов не установлено.
Рекомендую - Ю(е)банто (Ubantu). Очень гут. По-сравнению с левой рукой, конечно: Федориным Горем (Fedora Core/RedHat) или Деби(ль)яном (Debian), не говоря уже о прочей исторической Юнизятины вроде Сопляриса (Sun Solaris), АИКс (IBM AIX) или ЮнихВари\ОпенСтервера (SCO UnixWare\OpenServer). Есть даже какие-то постсоветские дистры, но их мне не склалось попробовать. :Е
СП

Date: 2009-02-19 02:33 pm (UTC)
From: [identity profile] egorius.livejournal.com
Всё это конечно, хорошо, но вот как это поможет мне со средой разработки? :)
Какая, в конце концов, разница, где подпиливать vim, под виндой или под унихом? Однако же за инфу спасибо.

Date: 2009-02-18 02:27 am (UTC)
From: (Anonymous)
Русские буквы - зло, особенно в коде, а синтаксическую таблицу могу подарить. Для С и прочей шелл-муеты. Работает прилично в цветном и ч\б режиме. :Е
СП

Date: 2009-02-18 02:28 pm (UTC)
From: [identity profile] egorius.livejournal.com
Странная у вас синтаксическая таблица... кругами... :P
А с русскими буквами приходится мириться, здесь вам не тут.

Date: 2012-01-29 11:46 am (UTC)
From: [identity profile] amberyso.livejournal.com
Автор продолжай в том же стилеImage (http://zimnyayaobuv.ru/)Image (http://zimnyaya-obuv.ru/)

Profile

egorius: (Default)
egorius

March 2025

M T W T F S S
      1 2
34 567 89
1011 121314 1516
17181920212223
24252627 28 29 30
31      

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Jul. 1st, 2025 05:58 am
Powered by Dreamwidth Studios