Настройка Vim для Python - PullRequest
       41

Настройка Vim для Python

59 голосов
/ 07 февраля 2012

Мне действительно нравится редактор Emacs для Python, потому что это умное табулирование, например, если у меня есть что-то вроде этого

def foo():
    if bar:
         blah
         [b]eep

, и я нажимаю tab на курсоре (который находится на b звукового сигнала),он не будет вставлять новую вкладку, вызывающую синтаксическую ошибку, но будет переключаться между возможными уровнями звукового сигнала.Есть ли способ получить этот эффект на Vim?

Ответы [ 8 ]

92 голосов
/ 07 февраля 2012

В общем, vim является очень мощным редактором на обычном языке (макросы расширяют это, но пока будем его игнорировать).Это потому, что vim - тонкий слой поверх ed, а ed - не что иное, как редактор строк, который говорит регулярные выражения.Emacs имеет преимущество в том, что он построен поверх ELisp;предоставляя ему возможность легко разбирать сложные грамматики и выполнять трюки с отступами, подобные той, что вы рассказали выше.

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

Начало работы

Янус

Для начинающих я настоятельно рекомендую установить готовый плагин Janus (кстати, название происходит от эпизода «Звездный путь» с участием Януса Вима).Если вам нужен быстрый ярлык для vim IDE, это ваш лучший удар за ваш доллар.

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

Vim Pathogen

В противном случае, сделайте некоторые исследования самостоятельно!Я очень рекомендую установить vim pathogen , если вы хотите увидеть вселенную плагинов vim.

Это своего рода менеджер пакетов.После установки вы можете git clone пакеты в каталог ~/.vim/bundle, и они автоматически устанавливаются.Больше не нужно устанавливать, обслуживать или удалять плагины!

Вы можете запустить следующий скрипт со страницы GitHub для установки патогена:

mkdir -p ~/.vim/autoload ~/.vim/bundle; \
curl -so ~/.vim/autoload/pathogen.vim \
    https://raw.github.com/tpope/vim-pathogen/HEAD/autoload/pathogen.vim

Полезные ссылки

Вотнекоторые ссылки на расширение vim, которые я нашел и которыми пользуюсь:

26 голосов
/ 06 июля 2013

Для тех, кто прибывает летом 2013 года, я считаю, что некоторые из этих веток устарели.

Я следовал этому руководству , которое рекомендует Vundle вместо Pathogen.После одного дня использования я нашел установку плагинов тривиальной.

Плагин klen / python-mode заслуживает отдельного упоминания.Он обеспечивает Pyflakes и Pylint среди других функций.

Я только начал использовать Valloric / YouCompleteMe, и мне это нравится.Он имеет автозаполнение C-lang, и python также отлично работает благодаря интеграции джедаев.Он вполне может заменить jedi-vim в соответствии с этим обсуждением / davidhalter / jedi-vim / questions / 119

Наконец, просмотр поставляемых плагинов / carlhuda / janus - это хорошее руководство по полезным сценариям, которые вы, возможно, не знаете, ищетедля таких как NerdTree, vim-fugitive, syntastic, powerline, ack.vim, snipmate ...

Все вышеперечисленные '{} / {}' найдены на github, их легко найти с помощью Google.

15 голосов
/ 07 февраля 2012

Поместите следующее в ваш .vimrc

autocmd BufRead *.py set smartindent cinwords=if,elif,else,for,while,try,except,finally,def,class
autocmd BufRead *.py set nocindent
autocmd BufWritePre *.py normal m`:%s/\s\+$//e ``
filetype plugin indent on

См. Также подробные инструкции

Я лично использую JetBrain PyCharm с плагином IdeaVIM при выполнении каких-либо сложных задач, для простого редактирования дополнений к .vimrc кажется достаточным.

3 голосов
/ 20 июня 2012

Существует набор подключаемых модулей Vim для разработки на Python: http://www.vim.org/scripts/script.php?script_id=3770

2 голосов
/ 06 января 2017

Re: мертвая ссылка «Превращение Vim в современную Python IDE», еще в 2013 году я сохранил копию, которую я преобразовал в HTML-страницу, а также в PDF-копию:

http://persagen.com/files/misc/Turning_vim_into_a_modern_Python_IDE.html

http://persagen.com/files/misc/Turning_vim_into_a_modern_Python_IDE.pdf

Изменить (8 сентября 2017 г.) обновленные URL-адреса.

2 голосов
/ 21 октября 2013

В Linux для меня сработало руководство Джона Андерсона (sontek), которое вы можете найти по этой ссылке .Тем не менее, я обманул и просто использовал его простую настройку конфигурации из его репозитория Git:

git clone -b vim https://github.com/sontek/dotfiles.git

cd dotfiles

./install.sh vim

Его конфигурация достаточно актуальна на сегодняшний день.

1 голос
/ 19 февраля 2015

Некоторое время назад я установил Valloric / YouCompleteMe , и я нахожу это действительно потрясающим.Он обеспечивает завершение путей к файлам, имен функций, методов, имен переменных ... Вместе с davidhalter / jedi-vim это делает vim отличным решением для программирования на python (единственное, чего сейчас не хватает - это linter).

0 голосов
/ 02 ноября 2012

Очень хорошая система управления плагинами для использования.Включенный файл vimrc достаточно хорош для программирования на python и может быть легко настроен в соответствии с вашими потребностями.Смотри http://spf13.com/project/spf13-vim/

...