Vim как среда разработки Python

Vim это хорошо настраиваемый текстовый редактор, часто использующийся в качестве среды разработки Python. Само название «Vim» расшифровывается как Vi Improved (улучшенный Vi; Vi — текстовый редактор в UNIX). Поклонники этого редактора среди его сильных сторон обычно называют обилие плагинов, Vimscript и логичный язык команд.

Чем хорош Vim в плане разработки на Python?

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

В редакторе Vim очень логичный и структурированный язык команд. Когда новичок приступает к ознакомлению с редактором, названия команд могут показаться ему непонятными и, как следствие, трудными для запоминания. Но все они строятся и комбинируются, подчиняясь определенным правилам. Когда вы усваиваете эти правила, язык команд становится понятным и предсказуемым.

Настройка Vim при помощи файла Vimrc

Для настройки редактора Vim используется файл Vimrc. Он может быть пустым, а может содержать сотни или даже тысячи строк конфигурационных команд.

Вот короткий пример файла .vimrc (с комментариями), который можно использовать для разработки на Python:

" включить подсветку синтаксиса
syntax enable

" показывать номера строк
set number

" установить tab равным 4 пробелам
set ts=4

" отступ при переходе на следующую строку при написании кода
set autoindent

" преобразование tab-ов в пробелы
set expandtab

" при использовании команд >> или << сдвигать строки на 4 пробела
set shiftwidth=4

" выделять строку, на которой находится курсор
set cursorline

" показывать парную скобку для [] {} и ()
set showmatch

" включить подсветку синтаксиса Python
let python_highlight_all = 1

Вот как выглядит текст этой статьи в редакторе 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

  • 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.