| « Поставить закладку » « Сделать стартовой » | |||
|
|||
|
[g]Vim в режиме Python: Рекомпиляция в Windows
Редактор Vim наиболее известен среди разработчиков в системах Unix — конкурент emacs, что-то вроде консольного IDE — этот редактор при должной сноровке и настройке (мне кажется, сноровке несколько меньшей и настройке более очевидной чем в emacs, но у последнего также есть мощная мультифункциональность — выбор за программистом) способен убыстрить и упростить многие процессы на этапах разработки не в ущерб таким удобствам как, например, авто-дополнение и навигация по проекту. Однако, если вы собираетесь использовать его для разработки на Python со всеми подобными удобствами — потребуются некоторые усилия: а именно, перекомпиляция… Приведу несколько ссылок по теме:
ВерсииКомпиляция производилась с использованием [g]Vim 7.1, Python 2.5.2, Tcl 8.5.1, Cygwin 1.5.25-11 на Windows XP SP2, но сценарий при этом должен быть насколько возможно независим от версий. Установка необходимых программИтак, подготовка. Нужно заранее установить сам язык — Python (если он не установлен) и, если вы собираетесь использовать Tcl — соответственно Tcl/Tk (с некоторого времени язык стал владением ActiveState: можно скачать бесплатный ActiveTcl). При компиляции используются динамические библиотеки соответствующих языков. Для работы с архивами и собственно компиляции нам понадобится эмулятор Unix-утилит под Windows - это Cygwin. В нём существуют и компилятор gcc, и необходимые для компиляции файлы (есть путь с компилятором Borland, но он несколько сложнее). Файл установки работает немного непривычным образом — скачивая и файлы установки и пакеты уже после вашего выбора (если вы выберете установку из Интернет, которая в первый раз в любом случае необходима) — при этом для обновления или до/переустановки пакетов вы, возможно, будете возвращаться к инсталлятору довольно-таки часто. Тем не менее, чтобы установить минимальный набор необходимых для нашего случая вещей — нужно отметить лишь пару пунктов: после выбора способа установки (на данный момент наиболее стабильно для меня работало зеркало ftp://mirror.switch.ch (хотя буквально в эти секунды его исключили из списка официальных зеркал): если будут ошибки закачки — вас снова вернут к выбору зеркала) в списке выбора пакетов убедитесь что вы находитесь в режиме Category (переключив его, если надо, кнопкой View вверху), рядом с пунктом All, несколько раз потыкав надпись Default поменяйте её на Uninstall (чтобы не устанавливать ненужных пакетов) и выберите следующие пункты — Utils/patch, Devel/gcc-g++, Devel/make, System/man и Devel/gcc-mingw (последний, возможно, будет уже заранее выбран, значит они уже исправили одну проблему, которая отражалось на удачной компиляции :) ) — при этом у вас автоматически станут выбраны некоторые другие относительно необходимые пакеты (можно перепроверить): Shells/bash, Utils/bzip2 и Devel/mingw-runtime (последний, тем не менее, безмерно важен). Также советую установить Web/wget для того, чтобы облегчить в дальнейшем закачку патчей. Всё, можно жать установку. Затем нужно, собственно, установить gVim. Можно заранее его настроить под Python, руководствуясь статьей, упомянутой выше — тогда при попытке подключения авто-дополнения Vim будет сообщать о необходимости перекомпиляции с ключом +python, что мы и планируем сделать. ПодготовкаЗапустите cmd и убедитесь, что в переменных окружения USERNAME и USERDOMAIN содержатся ваше имя и имя вашего компьютера и домена соответственно (echo %username%@%userdomain%), а PATH содержит путь к bin-каталогу Cygwin. HOME может указывать на ваш каталог “Мои документы” (туда, где находится ваш файл настройки vim — vimrc), а VIM — на месторасположение установленного, рабочего редактора vim, желательно в формате 8.3 (напр.: C:PROGRA~1VIM). Значения переменных можно изменять в диалоге, расположенном здесь: Мой компьютер → Свойства → Дополнительно → Переменные среды. Не менее, а даже более нам необходимы исходники, поэтому скачиваем их для соответствующей установленной версии (будьте внимательны — именно исходники для Unix, даже при компиляции под Win32) (по предыдущей ссылке также можно скачать файлы для отладки, но отлаживание в этой статье не рассматривается и в их присутствии нет необходимости). Поверх этих исходников нужно добыть дополнение для Windows (-extra) и файлы языков (-lang) соответствующей версии отсюда. Также, если вы используете стабильный релиз и хотите заодно установить новейшие патчи — за файлами патчей обращайтесь сюда (исправьте номер версии в ссылке, если нужно). Здесь есть некоторая проблема, поскольку файлы патчей упаковываются в один только при достижении сотни (001-100, 101-200 и т.д.), поэтому если их, например, 275 — последние 75 файлов придётся закачивать руками или написав batch-скрипт с использованием telnet. Однако, у нас уже установлен cygwin, поэтому можно создать .sh-скрипт, выполняющий те же функции через wget, выглядеть это может примерно так:
Теперь займёмся расположением исходников в виде, удобном для компиляции. Архивы с исходником, -extra и -lang нужно распаковать (по очереди, с заменой более старых файлов) в какой-либо каталог с сохранением структуры (пусть в нашем случае это будет C:/devel/vim-src/vim71), в нём должны содержаться каталоги /doc, /nsis, /src, /farsi и т.д.. В распаковке вам поможет или bzip2 из Cygwin, или встроенный архиватор файлового менеджера Total Commander или архиватор 7-zip или любой другой архиватор, поддерживающий архивы .tar.gz :). В подкаталог /runtime можно положить файлы .vim, каталоги /doc и /plugins из рабочей версии вашего редактора vim — тогда они будут пропатчены соответственно, если вы выбрали путь компилирования с патчами. Патчи при этом можно положить в каталог /patches. КомпиляцияДля того, чтобы установить патчи, нужно выполнить над каждым из них команду patch из набора Cygwin, предварительно распаковав архивы файлов с сотнями патчей. В этом случае я воспользовался .bat-файлом вместо .sh скрипта (номера патчей, конечно, нужно, поправить на соответствующие вашему набору):
Этот файл нужно положить в каталог /patches и после корректировки выполнить (убедитесь, что вся описанная выше структура дерева исходников сформирована): в корне исходников будет создан файл patching-src.log, в котором можно проследить результаты прошедшего патчинга. Если утилита patch не была найдена, проверьте PATH на наличие пути к Cygwin. Если некоторое (небольшое) количество файлов не было найдено и пропатчено — можно сильно не беспокоится, это в основном файлы для XWindow-версии. Теперь можно перейти непосредственно к компиляции из консоли Cygwin. Для этого необходимо удачно выполнить лишь три команды — перейти в каталог с исходниками (cygwin монтирует ваши диски в точке /cygdrive/: подставьте корректные пути к вашей установке Python и Tcl а также их корректные версии, а если вы не компилируете версию для Tcl — просто уберите соответствующие параметры) и создать файлы vim.exe (консольная версия) и gvim.exe (GUI-версия):
На предупреждения и даже некоторые ошибки, если они относятся к Python или Tcl и если процесс продолжается, а в результате .exe-файлы созданы, можно не обращать внимания. Если всё завершилось удачно, то в каталоге /src вы найдёте оба .exe-файла. Сделайте бэкап существующих файлов в рабочем, установленном vim (например, vim.exe.bak и gvim.exe.bak) и замените их только что скомпилированными. Если вы применяли патчи, то верните обратно *.vim файлы, каталоги /doc и /plugins из каталога /runtime, предварительно сделав бэкапы и для них и заменяя старые версии. После этого запустите gVim и vim из папки рабочего vim, проверьте версию и опции компилирования там же на присутствие +python — в большинстве случаев всё должно сложиться удачно. Возможные ошибкиВ процессе компилирования мне встретилось две ошибки: cannot exec ‘cc1’: No such file or directory и ld: cannot find -lgcc. Обе они известны авторам Cygwin, однако в моём случае в скачанных мной версиях они ещё не были решены. Первая временно решается предварительным (перед компиляцией) добавлением каталога с исполняемым файлом cc1.exe в локальный PATH cygwin:
Вторая решается так, как должна была решаться и первая — установкой Devel/gcc-mingw (её обещали сделать автоматической при выборе gcc в будущем) при установке Cygwin. При этом важно установить пакеты одновременно, поэтому если ошибка всё равно появляется — попробуйте выбрать режим Reinstall в установщике Cygwin в том месте, где до этого вы выбирали режим Uninstall и установите Cygwin заново. Настройка Vim для Python(Upd.) На основе этой статьи я создал пак (взять можно здесь) из последних версий упомянутый в ней плагинов (Project, PythonComplete, NERD_Commenter, VCSCommand, RunScript и TagList плюс, поверх — PyDiction) + минимальной настройки (в ftplugin/python.vim, практически идентичный соответствующему в статье (изменённая функция TabWrapper + другой способ подключения словаря) — только общепринятые стандарты, omni completion повешен на Tab). Содержимое требуется распаковать в каталог <путь_к_установленному_vim>vimfiles. Для плагина taglist потребуется скачать ctags отсюда, и распаковав полученный архив в некоторый каталог, добавить путь к нему в переменную окружения PATH. Затем нужно запустить vim и выполнить команду:
После этого можно будет использовать команду :help <название_плагина> для получения документации по соответствующему плагину. Обычное автодополнение при использовании настроек из пакета работает по Tab, дополнение по контексту (omni completion) — по Ctrl+Enter и Ctrl+Space, а дополнение по ключевым словам и модулям — по Ctrl+Tab (при большом количестве вариантов словарь загружается относительно долго, поэтому намеренно установлено не очень удобное сочетание). Для того, чтобы вставлять предлагаемые по спецификации строки в заголовки python-файлов при создании, добавьте нижеприведённый код в файл <путь_к_установленному_vim>_vimrc (строка filename добавлена для демонстрации возможности добавления имени файла):
…Вот теперь можно c чрезвычайным удобством программировать на Python. Источник: http://shaman-sir.wikidot.com Рубрика: Статьи
Вышел MySQL 5.1.30, первый стабильный рели....
После публикации 29 тестовых версий анонсирован первый стабильный релиз MySQL 5.1, пригодный для промышленной эксплуатации и обеспечивающий увеличение производительности для "тяжелых" SQL запросов, по сравнению с MySQL 5.0, примерно на 15-20%. Главные новшества появившиеся в MySQL 5.1:
Подробнее... |
Рубрика: MySQL
| Добавлено: 28.11.2008
Тестирование параллельных программ.
Тестирование параллельного программного обеспечения представляет собой более сложную задачу по сравнению с тестированием последовательной программы. Программист должен знать о подводных камнях при тестировании параллельного кода, имеющихся методологиях и инструментарии.
Подробнее... |
Рубрика: Тестирование
| Добавлено: 28.11.2008
Архитектура AMD64 (EM64T).
Аннотация. В статье кратко рассматривается архитектура AMD64 компании AMD и ее реализация EM64T компании Intel. Описаны особенности архитектуры, ее возможности, достоинства и недостатки.
Подробнее... |
Рубрика: Архитектура AMD
| Добавлено: 27.11.2008
Остальные статьи: |
Цитата дня (все,добавить):
|
Realcoding.NET
© 2003-2008 |
Контакты |
Реклама на сайте
|