VIM, Django… Django, VIM из песочницы

Вот казалось бы сейчас, как никогда должна быть масса крутых IDE для разработки на Django. И они есть — взять хотя бы PyCharm или PyDev. Но мне они никогда не нравились. Я всю свою карьеру Python-разработчика пользовался SciTE + Scintilllua (вот мой конфиг, если кому нужен) и был вполне доволен. Но черт меня дернул попробовать VIM с Emacs и я уже не смог вернуться на SciTE. Нет, это отличный редактор, но большую часть работы я пишу код и уже не могу представить, как можно было работать в текстовом редакторе с мышкой или каждый раз тянуть руку к стрелкам, чтобы перейти на новую строку, а потом к End, чтобы перейти в конец строки. Оставалось мне только по-минимуму настроить свой VIM для удобной разработки на Django.

Цветовая схема


С первой же попытки выбор пал на Solarized Dark. Я ее раньше никогда не использовал и вообще не особо люблю голубые темы для редактора, но эта стала приятным исключением. Очень продуманная и приятная для глаз цветовая схема. Вот скриншот с самого сайта:

image

Подсветка синтаксиса


Мне кроме Django Templates ничего не нужно было, поэтому я на этом и остановился. Разве что решил еще скачать последнюю версию для подсветки Python-кода.

django.vim
python.vim

Pyflakes, PEP8


На мой взгляд очень полезные плагины. Pyflakes на лету проверяет ваш код на наличие ошибок, а PEP8 по хоткею проверяет его на соответствие стандарту, описываемом в одноименном документе. Если PEP8 редко пригождается, то Pyflakes часто выручает, когда забываешь поставить закрывающую скобку или двоеточие.

Для проверки кода на соответствие стандарту PEP8 нужно нажать F5.



Стоит отметить, что оба этих плагина используют внешние программы. В deb-based системах они устанавливаются так:

# apt-get install pep8
# apt-get install pyflakes


Плагины


NERDTree

Сайт
Удобный браузер файловой системы.



Клавиша Описание
o открыть
t открыть в новой вкладке
i разделить по горизонтали и открыть
s разделить по вертикали и открыть
C установить директорию под курсором в качестве корня дерева
r обновить директорию под курсором
R обновить текущий корень дерева
m показать меню


В моем конфиге для открытия/закрытия NERDTree используется клавиша F2.

NERDCommenter

Сайт
Удобное комментирование кода для множества типов файлов.

Клавиша Описание
<leader>cc комментировать текущую строку или область в визуальном режиме
<leader>c<space> комментировать/раскомментировать (toggle) текущую строку или область в визуальном режиме


minibufexpl

Сайт

Пользуюсь им для того, чтобы видеть текущие открытые буферы.

Файлы


Мой .vimrc и сопутствующие файлы (.vim) можно забрать здесь.
17 марта 2012, 17:17
90
ad3w 5,1

комментарии (33)

+5
klen #
А теперь попробуй красную пилюлю: github.com/klen/python-mode
0
ad3w #
Никогда не любил такие вещи. По-моему намного лучше самому наращивать функционал своего инструмента по потребностям.
+3
dbykov #
Тогда зачем написали статью? Те кто любят уже пользуются python-mode, а те кто не любят использовать ваши конфиги не станут.
+2
ad3w #
Ну у меня не сборка, а просто перечисление основного набора плагинов. vimrc здесь большее для того, чтобы можно было посмотреть, как это все дело настроить.
+14
vaxXxa #
Пользовался VIMом, а сейчас использую PyCharm.
Во-первых в IDEшках есть тоже «hotkeys». Не такие широкие и полноценные, как в VIМе и EMACSе, но хватает с головой. Во-вторых в больших проектах нужно часто бегать между классами, методами. В-третьих у меня обычно получается такой один час работы: дебажусь, думаю, изучаю код 55 минут, пишу сам код — 5 минут.
Быстро подправить код — VIM.
Писать здоровезный проект — мой выбор упал на PyCharm.
+2
madflux #
Еще аргумент в пользу IDE это автодополнение методов для объектов и их подобьектов, что для вима не всегда под силу.
0
kriomant #
Для IDEA, кстати, есть достаточно функциональный VIM-плагин. Я так понимаю, он и под PyCharm заведётся.
0
Shark #
Отлично заводится и работает.
0
sdevalex #
Не знаю как по питону, но по Ruby VIM отлично бегает и дебажит.
+2
ad3w #
taglist, vimpdb
+2
l0rda #
тоже перешел с vim'а на pyCharm, хотя в виме уже лет 10 точно пишу :)
скорость разработки заметно выросла.
+1
flexoid #
День вима на хабре
+1
FanKiLL #
Нехватает автодополнения.
+2
neithere #
taglist, pydiction…
0
ad3w #
Советую попробовать PySmell
0
hazg #
в NERDTree есть :Bookmark MyProject, потом «B» для выбора нажать достаточно. Удобно.

P.S. Тоже на F2 посадил, правда пользуюсь в рельсах )))
0
ad3w #
Круто, получается что-то вроде менеджера проектов. Спасибо.
0
hazg #
нормального менеджера так и не нашел. делаю так. незачто. правда, про джанго не знаю (((

там еще слешом можно искать файлы\директории )))

no pasaran
0
chegivara #
В Pycharm есть плагин, который имитирует работу vim.
+3
ad3w #
Зачем имитировать работу VIM, если можно работать в VIM?
0
chuwy #
Однажды привыкнув к hjkl вы не скоро захотите возвращаться к обычным раскладкам. Хороший плагин.
0
djakomo #
Возможно тем, что кроме раскладки, людям требуются и другие возможности — такие как удобный дебаг, доступ из консоли к переменным непосредственно во время исполнения программы и т.д.
0
brabadu #
Когда-то тоже радовался NerdTREE. Потом попробовал Sublime Text 2 и захотелось такого же открытия файлов, через Cmd+P, и нашел command-t

Но в итоге пересел-таки на сублим :)
0
vittore #
Аналогично, попробовал Sublime 2, ничего другое больше не нравится, кстати там есть и vim-mode =)
0
brabadu #
vim-mode пробовал, но не пошло. vim и st2 по отдельности отличные редакторы, но из одного лепить другой как-то не то.
+2
hdg700 #
Ни одна IDE не предоставляет качественной эмуляции Vim. Несколько раз пытался «слезть» с Vim, и всегда возвращался на него. А если кто-то уверяет, что эмуляции им достаточно, то скорей всего они не использовали всех возможностей этого редактора, такие люди используют только dd, перемещаются по тексту стрелками и гордо заявляют, что они — пользователи вима. Фу.

Про автодополнение: никогда не понимал тех, кто жалуется на его корявость, ведь всегда можно открыть интерпретатор, а там вам и dir() и help(); в более сложных ситуациях help() можно вызвать прям в коде. А автодополнение по открытым файлам отлично работает, и именно оно зачастую и нужно.

Про переходы по классам и файлам: обычно я знаю, в каких файлах, какие классы, и открыть их — дело пары секнд (возможно даже быстрей, чем прицелиться мышкой), а если это не так, значит проект имеет плохую структуру. Для чужих проектов есть grep. И да, всегда можно настроить индексацию проекта, и тогда переходы по классам будут работать.

Не забываем, что Vim — это редактор текста, а не IDE, но на мой взгяд его возможности с головой покрывают отсутствие каких-то «надуманных» IDE-шных удобностей.

Где-то давно слышал высказывание, что Linux сам является одной большой средой разработки, так что: Vim + консоль — наше всё :)
0
djakomo #
А каких именно возможностей VIM вам не хватает в эмуляторах типа IdeaVIM в PyCharm или поддержку vim в Komodo?
0
hdg700 #
Я не могу сказать на вскидку, но как только садишься за «эмулятор» Vim, то сразу мешают какие-то мелочи: либо чего-то нет вообще, либо то, что есть, работает не так.

Хотя… кажется, вспомнил пример: когда работал в AppCode, включал режим Vim, и, насколько я помню, сочетание клавиш ci" ни к чему не приводит, хотя оно довольно часто используется. Еще, вроде бы, там не работали команды перехода к символу (t и f). Вот из таких мелочей и складывается впечатление.

Опять же не будем забывать, что Vim — это не только удобное перемещение по тексту (которое уже неправильно эмулируется), но это еще и огромная куча других инструментов: сплиты, метки, макросы, гибкая конфигурация, различные команды. Подобных вещей вообще нет в «эмуляторах». А ими пользуюсь постоянно, особенно сплитами. (и не надо говорить, что в SublimeText есть сплиты: пара заготовленных шаблонов для разделения экрана — ничто по сравнению со сплитами в Vim)
0
djakomo #
использую vim и pycharm — на проектах со сложной структурой, где требуется частая отладка и т.д. — PyCharm и его возможности мне значительно удобнее.

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

По поводу комбинаций клавиш — в pycharme есть недостатки, но они не критичны по сравнению с возможностями которые он дает.
0
hdg700 #
Думаю, спорить тут не о чем. Мы приверженцы разных церквей. :)

Для меня — редактирование текста — самое критичное место, и лучше Vim с этим ничего не справится — 100%.
0
vaxXxa #
Тоесть вы приходите на новые проект, не знаете код (а его ооочень много, так как он писался больше года), и хотите доказать мне, что grepом быстрее бегать по классам, методам, искать нужные части кода и т.п.?
Если знаешь проект, то четко знаешь, что ищешь — тут да, вы правы. Но если этот проект для вас новый и очень большой, либо вы юзаете 10 либ и нужно понять, как они устроенны внутри — тут grepом можно долго мучаться.
0
hdg700 #
Видимо, мне еще не приходилось переходить на подобные проекты, где я бы не смог разобраться, где и что искать. Но если и придется, вряд ли для этого я буду ставить ide. Быстрей уж проиндексировать его и в vim «бегать по классам, метода, искать нужные части кода».

Я уже упомянул, что удобство редактирования — самое важное для меня.
0
MechanisM #
Пользовался и PyDev и PyCharm и Gedit с плагинами, но мне больше по производительности и легковесности понравился Sublime Text 2 с плагином Djaneiro. А для HTML/CSS юзаю плагин от создателя Twitter Bootstrap. Ну и свои есть сниппеты разные))

Только зарегистрированные пользователи могут оставлять комментарии. Войдите, пожалуйста.