- Vim как IDE для разработки на Python
- Vim как среда разработки Python
- Чем хорош Vim в плане разработки на Python?
- Настройка Vim при помощи файла Vimrc
- Руководства по Vim
- Ресурсы по Vimrc
- Руководства по установке Vim
- Использование Vim в качестве Python IDE
- Плагины Vim
- Менеджеры плагинов Vim
- Специфичные руководства
- Настраиваем Vim под Python
- .vimrc
- Плагины
Vim как IDE для разработки на Python
Не так давно я решил настроить текстовый редактор Vim для написания скриптов на Python. Выкладываю небольшую инструкцию под Debian/Ubuntu.
Устанавливаем Python 3.4 и pip3 (установщик модулей для Python)
После этого нужно убедиться, что Vim в вашей системе собран с поддержкой Python:
Если вывод будет примерно таким:
+cryptv +linebreak +python +viminfo
то значит поддержка Python имеется, если же нет, то нужно либо пересобрать/переустановить Vim с поддержкой Python, либо поставить пакет Vim-nox — расширенная версия Vim’a для работы в консоли, идет сразу с поддержкой Python’a.
Для Vim существует удобный пакетный менеджер, с помощью которого можно быстро устанавливать, обновлять и удалять плагины. Установим его:
После выполнение этой команды Vundle будет установлен в
Добавим в конфиг .vimrc следующие строки:
Строки вида Plugin ‘scrooloose/nerdtree’ представляют собой ссылки на эти плагины в интернете, которые впоследствии Vundle скачает и установит.
- NERDTree — навигация по директориям
- TagBar — навигация по классам/функциям/переменным
- vim-airline — строка статуса/состояния
- FixedTaskList — поиск в файле FIXME, TODO и т.п.
- conque-term — используем для вызова дебаггера
- vim-surround — автозакрытие тегов HML/XML/и т.п.
- vim-snipmate — сниппеты
- python-mode — рефакторинг, документация, дебаггер Python и т.п.
- jedi-vim — автодополнение для Python
- vim-jinja — поддержка синтаксиса шаблонов Jinja
Чтобы вышеперечисленные плагины установить, запускаем Vim и выполняем:
:PluginInstall
Этой командой мы сканируем кофигурационный файл .vimrc на наличие списка плагинов указанных в виде Plugin ‘ссылка_до_плагина’. После этого начнется скачивание и установка плагинов с github. Установленные плагины помечаются значком «+».
Еще пара полезных команд Vundle:
- :BundleClean — удалит все плагины, которые не прописаны в .vimrc.
- :BundleList — Просмотреть ссписок всех установленных плагинов.
Приведу еще несколько общих настроек (добавьте эти строки в конец конфига .vimrc):
Ссылка на полный файл конфига на BitBucket.
Я также прикрепил его как вложение к статье.
Далее нужно поставить pyvenv, для создания виртуального окружения:
Создаем каталог виртуального окружения в каталоге, где будут лежать .py -файлы (перед созданием каталог должен быть пустым):
после этого в данном каталоге создастся виртуальное окружение, появится бинарник Python3.4, pip3 и т.д. Чтобы активировать (запустить окружение), выполняем команду:
И, наконец, ставим ipython, для удобного запуска интерпретатора прямо в окне Vim (плагин Python-mode)
Несколько горячих клавиш, при работе с python-скриптами в нашем Vim:
- F3 — запуск дерева каталогов в левой части Vim
- F5 — запуск интерпретатора IPython
- F6 — запуск(выполнение) скрипта в нижней части окна Vim
После всех наших настроек мы получим примерно такой Vim:
Файл конфига .vimrc я хорошо документировал, все настройки с комментариями вы найдете в полном файле во вложении к статье или на BitBucket.
Статья получилась достаточно объемной, по мере каких-либо изменений/нововведений буду обновлять материал.
Жду ваших дополнений/замечаний в комментарии!
Источник
Vim как среда разработки Python
Vim это хорошо настраиваемый текстовый редактор, часто использующийся в качестве среды разработки Python. Само название «Vim» расшифровывается как Vi Improved (улучшенный Vi; Vi — текстовый редактор в UNIX). Поклонники этого редактора среди его сильных сторон обычно называют обилие плагинов, Vimscript и логичный язык команд.
Чем хорош Vim в плане разработки на Python?
Согласно философии Vim, разработчики куда более продуктивны, если им не приходится отрывать руки от клавиатуры. Код должен естественным образом перетекать из их мыслей на экран через пальцы и клавиши. Использование мыши и прочих устройств замедляет преобразование мыслей в код.
В редакторе Vim очень логичный и структурированный язык команд. Когда новичок приступает к ознакомлению с редактором, названия команд могут показаться ему непонятными и, как следствие, трудными для запоминания. Но все они строятся и комбинируются, подчиняясь определенным правилам. Когда вы усваиваете эти правила, язык команд становится понятным и предсказуемым.
Настройка Vim при помощи файла Vimrc
Для настройки редактора Vim используется файл Vimrc. Он может быть пустым, а может содержать сотни или даже тысячи строк конфигурационных команд.
Вот короткий пример файла .vimrc (с комментариями), который можно использовать для разработки на Python:
Вот как выглядит текст этой статьи в редакторе Vim, настроенном подобным образом:
Взгляните на другой пример использования этой конфигурации, на этот раз со светлым фоном. Так выглядит код на Python:
Файл Vimrc находится в домашней директории пользователя, запускающего Vim. Например, для аккаунта пользователя matt в Mac OS X путь к файлу Vimrc будет следующим: /Users/matt/.vimrc
В Ubuntu (Linux) файл .vimrc будет находиться в директории /home/matt/ .
Если файл Vimrc не существует, просто создайте его в своей домашней директории, и Vim его подхватит при следующем запуске.
Руководства по Vim
Vim имеет репутацию сложного в изучении редактора, но эти руководства облегчат вам старт.
- Learn Vim Progressively. Отличный туториал, который позволит вам изучить достаточно для «выживания», т. е., простого ежедневного пользования. А уже в ходе работы вы познакомитесь с более продвинутыми функциями.
- Учебник по Vim. Позволит вам углубиться в изучение редактора.
- Why Atom Can’t Replace Vim. В этой статье рассматриваются основные принципы Vim, а именно — возможность объединения команд. Язык Vim позволяет комбинировать простые команды для выполнения более сложных операций. Например, если вы в командном режиме наберете символ $, курсор переместится в конец строки. А если перед этим символом поставить d (d$), то будет удалено все, что находится от текущего положения курсора и до конца строки. Со временем простые команды станут для вас интуитивными, и тогда вам будет проще использовать их комбинацию, чем пользоваться мышью или выпадающим меню.
- Vim as Language. Эта статья объясняет синтаксис Vim.
- How to install and use Vim on a cloud server и How to use Vim for advanced editing of code on a VPS это два подробных руководства по работе с Vim — как локальной, так и на облачном сервере.
- PacVim. Игра (в командной строке) для изучения команд Vim. Используется тема PacMan.
- Ten years of Vim. Статья с воспоминаниями опытного разработчика об использовании Vim в качестве основного текстового редактора и среды разработки. Особенно интересна часть о том, как автор вернулся от использования плагинов к более простой конфигурации редактора.
- At least one Vim trick you might not know about. Коллекция неочевидных сочетаний клавиш, многие из которых весьма полезны, хотя не очень распространены.
- Vim Adventures. Крутая браузерная игра, помогающая изучить команды Vim.
- Things About Vim I Wish I Knew Earlier. Автор этой статьи рассказывает о том, чему он научился, несколько лет пользуясь исключительно Vim. Например, вы узнаете об относительной нумерации строк (вместо абсолютной), использовании различных опций конфигурации, нечетком поиске (для быстрого открытия файлов в другой директории).
- Seven habits of effective text editing. В статье рассказывается, как быстро перемещаться по тексту, исправлять ошибки и формировать хорошие привычки редактирования.
- Vimtutor — интерактивный учебник по Vim в UNIX-подобных системах. Изучение команд путем их использования, а не просто заучивания. Учебник можно русифицировать. Запускается командой $ vimtutor .
Ресурсы по Vimrc
Есть несколько ресурсов, которые помогут вам научиться структурировать файл .vimrc. Лучше добавлять опции конфигурации и тестировать их по отдельности, а не всем скопом (особенно если вы еще не знакомы с Vimrc).
- A Good Vimrc. Фантастически подробный обзор и надежное руководство по настройке Vim. Пригодится как начинающим, так и опытным пользователям этого редактора.
- Vim and Python. Эта статья познакомит вас с опциями файла .vimrc для работы с Python.
- Vim as a Python IDE. Из этой статьи вы узнаете о плагинах и настройках редактора Vim, позволяющих использовать его в качестве среды разработки Python.
- В этом репозитории есть отдельная папка с файлами Vimrc. Примеры конфигурации в этих файлах сопровождаются хорошими комментариями, благодаря чему по ним можно учиться.
- Если вам тяжело дается начало работы с Vim, обратите внимание на статью Two Simple Steps Helped Me Learn Vim.
Руководства по установке Vim
Эти руководства научат вас, как установить и запустить Vim на машине с Mac OS X, Linux или Windows.
- Статья Upgrading Vim on OS X поясняет, зачем нужно обновлять Vim 7.2 до 7.3+ и как это сделать при помощи Homebrew.
- Самый простой способ установить Vim на Windows это скачать и запустить файл vim74.exe.
- В Linux Vim устанавливается командой sudo apt-get install vim .
- Если вы в качестве среды разработки используете PyCharm, вам нет нужды устанавливать Vim отдельно. Вместо этого можно использовать плагин IdeaVim.
Использование Vim в качестве Python IDE
Когда освоите Vim в качестве редактора, можно попробовать улучшить продуктивность написания в нем кода на Python при помощи дополнительных опций конфигурации и плагинов. Вот несколько ресурсов, которые помогут вам сделать этот шаг:
- VIM and Python — a Match Made in Heaven. Статья подробно рассказывает о том, как настроить мощную среду VIM, чтобы днями напролет создавать в ней код на Python.
- Проект python-mode это плагин для Vim, обеспечивающий подсветку синтаксиса, брейкпоинты, PEP8-линтинг (PEP8 — соглашение о стиле написания кода в Python), автодополнение кода и многие другие функции, которые вы ожидаете найти в интегрированной среде разработки.
- В статье Vim as Your IDE поясняется, как настроить Vim для достижения большей продуктивности. Имеет смысл читать, когда вы уже освоили язык команд и научились пользоваться этим редактором.
- Setting up Vim for Python. Советы по использованию Vim от пользователей Stack Overflow.
- Если вы пишете в Vim документацию в разметке Markdown, обязательно почитайте пост о соответствующей настройке редактора.
Плагины Vim
- 5 Essential VIM Plugins That Greatly Increase my Productivity. Автор статьи описывает свой опыт работы с такими плагинами как Vundle, NERDTree, ctrlp, Syntastic и EasyMotion.
- Getting more from Vim with plugins. В этой статье вы найдете список плагинов с описаниями и примечаниями относительно их полезности. Также интересны комментарии внизу статьи, поскольку читатели предлагают альтернативные варианты для некоторых плагинов, упомянутых в тексте.
- Powerline — это популярный плагин Vim для усовершенствования строки состояния. Работает в Python 2 и 3.
- VimAwesome — это директория с плагинами Vim. Пополняется при помощи Vim.org, GitHub и предложений пользователей.
- Command-T — плагин Vim для быстрого нечеткого поиска файлов.
- YouCompleteMe — движок автодополнения кода и плагин, полезный для работы с Python.
Менеджеры плагинов Vim
Если вы используете много плагинов Vim одновременно, для упорядочивания всех зависимостей вам пригодится менеджер плагинов. Чаще всего в экосистеме Vim используются следующие менеджеры:
- Vundle — часто рекомендуется пользователями.
- Pathogen — тоже очень широко используется.
- Vim-plug — позиционируется как минималистичный менеджер.
Специфичные руководства
Когда вы освоите Vim и попользуетесь им некоторое время, вы можете обнаружить функционал, о котором и не подозревали. Следующие руководства расскажут вам, как использовать некоторые специфические функции. Если вы пользуетесь Vim достаточно долго, вероятно, вы уже знакомы с ними, но у каждого свой учебный путь, так что лучше проверьте, не упустили ли вы что-то важное.
- Vim’s absolute, relative and hybrid line numbers. Из этой статьи вы узнаете, как изменять схему нумерации строк. Польза этой функции сильно зависит от того, с каким языком вы работаете.
- Статья A simpler Vim statusline поясняет, как можно кастомизировать строку состояния внизу экрана без использования плагинов (таких, как vim-powerline или vim-airline).
- Есть очень крутой проект vim-clutch. Его суть — в возможности сделать ножную педаль для переключения между командным режимом и режимом вставки (вместо использования клавиши ESC).
- И вот еще одна любопытная статья о том, как ее автор вел записи на лекциях по математике, используя LaTeX и Vim.
Источник
Настраиваем Vim под Python
.vimrc
/.vimrc. Привожу весь файл целиком, может кому-то будет полезно.
«Вырубаем режим совместимости с VI:
set nocompatible
«Включаем распознавание типов файлов и типо-специфичные плагины:
filetype on
filetype plugin on
«Настройки табов для Python, согласно рекоммендациям
set tabstop=4
set shiftwidth=4
set smarttab
set expandtab «Ставим табы пробелами
set softtabstop=4 «4 пробела в табе
«Автоотступ
set autoindent
«Подсвечиваем все что можно подсвечивать
let python_highlight_all = 1
«Включаем 256 цветов в терминале, мы ведь работаем из иксов?
«Нужно во многих терминалах, например в gnome-terminal
set t_Co=256
«Настройка omnicomletion для Python (а так же для js, html и css)
autocmd FileType python set omnifunc=pythoncomplete#Complete
autocmd FileType javascript set omnifunc=javascriptcomplete#CompleteJS
autocmd FileType html set omnifunc=htmlcomplete#CompleteTags
autocmd FileType css set omnifunc=csscomplete#CompleteCSS
«Авто комплит по табу
function InsertTabWrapper()
let col = col(‘.’) — 1
if !col || getline(‘.’)[col — 1] !
‘\k’
return «\»
else
return «\ »
endif
endfunction
imap =InsertTabWrapper()»Показываем все полезные опции автокомплита сразу
set complete=»»
set complete+=.
set complete+=k
set complete+=b
set complete+=t
«Перед сохранением вырезаем пробелы на концах (только в .py файлах)
autocmd BufWritePre *.py normal m`:%s/\s\+$//e «
«В .py файлах включаем умные отступы после ключевых слов
autocmd BufRead *.py set smartindent cinwords=if,elif,else,for,while,try,except,finally,def,class
«»»»Дальше мои личные настройки,
«»»»в принципе довольно обычные, может кому надо
«Вызываем SnippletsEmu(см. дальше в топике) по ctrl-j
«вместо tab по умолчанию (на табе автокомплит)
let g:snippetsEmu_key = » «
» Копи/паст по Ctrl+C/Ctrl+V
vmap «+yi
imap «+gPi
colorscheme wombat256 «Цветовая схема
syntax on «Включить подсветку синтаксиса
set nu «Включаем нумерацию строк
set mousehide «Спрятать курсор мыши когда набираем текст
set mouse=a «Включить поддержку мыши
set termencoding=utf-8 «Кодировка терминала
set novisualbell «Не мигать
set t_vb= «Не пищать! (Опции ‘не портить текст’, к сожалению, нету)
«Удобное поведение backspace
set backspace=indent,eol,start whichwrap+= ,[,]
«Вырубаем черточки на табах
set showtabline=0
«Колоночка, чтобы показывать плюсики для скрытия блоков кода:
set foldcolumn=1
«Переносим на другую строчку, разрываем строки
set wrap
set linebreak
(резервные) файлы
set nobackup
set noswapfile
set encoding=utf-8 » Кодировка файлов по умолчанию
set fileencodings=utf8,cp1251 » Возможные кодировки файлов, если файл не в unicode кодировке,
» то будет использоваться cp1251
Плагины
Далее. Нам нужна клевая подсветка синтаксиса вместо дефолтной — для Python (и для Django — если хотите). Качаем и сливаем в
/.vim/syntax/ (здесь и далее — если папки в вашей домашней директории нету, создавайте ее)
Автодополнение тоже лучше не дефолтное — качаем pythoncomplete.vim и заливаем в
/.vim/autoload/. В .vimrc мы уже настроили комплит на Tab.
Если мы что то написали, мы должны это запустить. Качаем runscript.vim и кидаем его в
/.vim/plugin/. Он с кривыми концами строк, мы должны его поправить:
sudo apt-get install tofrodos #в бубунте
dos2unix
Теперь открываем его в Vim и правим настройки:
«Путь к питону, исправляем виндовый
let s:PathToExecutable = ‘/usr/bin/python’
» Map keys to function calls
«Выполнить скрипт, который назначен «Главным»
if !hasmapto(‘RunScript’)
nmap ExecuteScript
endif
«Назначить скрипт в буфере Главным
if !hasmapto(‘SetMainScript’)
nmap SetMainScript
endif
«Сбросить назначение Главного скрипта
if !hasmapto(‘ClearMainScript’)
nmap ClearMainScript
endif
«Показать/скрыть окно вывода
if !hasmapto(‘ToggleOutputWindow’)
nmap ToggleOutputWindow
endif
Можно конечно настройки скрипта и в .vimrc прописать, но скрипт все равно кривой и его ковырять пришлось.
Теперь самое вкусное — SnippletsEmu — снипплеты. Это маленькие заготовки языковых конструкций. Вводишь for, нажимаешь кнопку (у меня в .vimrc ctrl-j), получается:
Нажимаешь еще раз кнопку, курсор перескакивает к следующему полю. Так очень удобно добавлять функции, классы, циклы, что угодно.
Ставится это добро (оно, кстати, очень похоже на функционал Textmate) из двух vba архивов: с плагином и с готовыми снипплетами. Открываем архив в vim, набираем:
:source %
И все, поставилось. Повторить со вторым архивом
Можно и свои снипплеты создавать, коммандой типа:
:Snippet клевоимячко Меня зовут . Зови меня .
И исспользовать, набрав клевоимячко и нажав назначенную комбинацию.
Но функционал SnippletEmu велик, и это тема для следующей статьи
Источник