Как настроить vim для python

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 кодом

LiveReload

Большинство web — разработчиков в наше время с трудом представляют свою жизнь без этого замечательного расширения. Оно есть в таких редакторах как WebStorm, Sublime Text и существует как отдельное приложение для редакторов не поддерживающих LiveReload. К сожалению Vim относится к таким редакторам. Расширение есть, но оно давно уже устарело и не поддерживает последний протокол LiveReload 2.

К счастью есть замечательная консольная утилита, которая называется python-livereload. Из огромных плюсов данной утилиты — не нужно устанавливать плагин для Google Chrome, Firefox и т.д., утилита бесплатная. Получить исходники можно тут github.com/lepture/python-livereload установить ее можно через pip или easy_install:

Прежде чем начать редактирование нам необходимо создать Guardfile, который является обычным Python скриптом.

После чего в текущей директории мы можем запустить сервер LiveReload командой:

Python-livereload так же поддерживает less, coffee, uglifyjs и slimmer. Достаточно импортировать соответствующую функцию из модуля livereload.compiler, например:

Базовые настройки редактора vim

Теперь поговорим о базовых настройках, которые помогут нам в дальнейшем комфортно работать с кодом. Для начала давайте установим клавишу leader.

Клавиша leader позволяет нам создавать собственные комбинации, при этом не портя стандартные, которые уже присутствуют в редакторе. В качестве клавиши leader я установил комбинацию «,» вы можете установить любую другую.

Из редактора я постарался убрать все лишнее (кроме вкладок в GUI). Для этого воспользуемся следующими настройками

Обратите внимание на закоментированную строку set guioptions-=e. Если ее включить вкладки у вас будут выглядеть как в консольном виме:

Отступы между черточками, разделяющие окно редактора можно убрать так

Теперь настроим не отображаемые символы, к ним относятся пробельные символы, символы переноса строки и символы табуляции. Я использую следующие настройки

Я привязал комбинацию leader + l для включения и выключения не отображаемых символов, так как они не всегда нужны, а иногда даже мешают редактированию.

Совет: иногда при вставке текста в редактор не сохраняется форматирование и в редакторе появляется какая то белиберда. Что бы этого избежать добавьте в vimrc строку set paste или перед вставкой текста введите команду :set paste

Vundle

Vundle позволяет с легкостью устанавливать и обновлять расширения. Далее в статье для установки расширений мы будем использовать именно этот плагин. Установка на займет много времени, поэтому давайте сразу его установим:

Теперь необходимо добавить следующие строки в .vimrc:

Для установки расширений воспользуйтесь следующим форматом

Powerline

Статусная строка в vim выглядит уныло и некрасиво. К счастью есть плагин, который делает ее более информативной и красивой. Пример того, как выглядит строка состояния у меня

Установка: Bundle ‘Lokaltog/vim-powerline’

Что бы отображалась ветка текущего репозитория git, в директории которого вы находитесь добавьте и установите Bundle ‘tpope/vim-fugitive’. Для корректной работы Powerline необходимо скачать исправленные шрифты отсюда, установить их и прописать в редакторе. Например:

Command-T

Command-T это отличное расширение позволяющее вам быстро открывать файлы по их названию, переключаться между буферами или тегами.

Установка: Bundle ‘wincent/Command-T’
Далее необходимо перейти в директорию расширения command-t и запустить rake make:

Клавиатурные комбинации можно настроить следующим образом:

Теперь по leader + f открывается Command-T, leader + b открывает список открытых буферов.

Pyhton mode

Python mode позволяет сделать из редактора почти что полноценную IDE. Из того, что умеет python-mode:

1. Подсветка ошибок через pyflakes, pep8, pylint, mccable, pep257

2. Полная поддержка Rope (RopeCompletion, RopeGotoDefinition, RopeRename, RopeAutoImport, и т.д.)

3. Поддержка virtualenv

Пример настроек python-mode

Клавиатурные комбинации:

Комбинация Описание
C-c-g Go to definition
C-space Rope autocomplete
C-c-d Rope show documentation
C-c-f Rope find occurrences

Для Rope autocomplete я настроил комбинацию leader+c. Включается она так

Мой файл конфигурации Vim с подробными комментариями можете посмотреть тут github.com/aliev/vim

Другие полезные расширения vim

MatchTag
Bundle ‘gregsexton/MatchTag’
Подстветка парных html, xml тегов

EndWise
Bundle ‘tpope/vim-endwise’
Отличное расширение для рубистов, которое позволяет автоматически закрывать блоки в Ruby

Emmet
Bundle ‘mattn/emmet-vim’
Я очень долго ждал это расширение. Поддержка emmet (переименованный Zen Coding)

T-Comment
Bundle ‘tomtom/tcomment_vim’
Комментирование блоков кода с автоматическим определением языка

Источник

Читайте также:  Рация vector как настроить частоты
Оцените статью