LINUX.ORG.RU

VIM как python IDE

 , ,


9

8

Знаю тема могла уже много раз поднималась, в том числе и в интернетах. Но из-за большого количества плагинов и как следствие одни плагины приходят на смену другим, засоветуйте оптимальный набор для создания python-IDE:

Нужно:

Удобные сниппеты аля в Geany. Т.е. повесил

Удобная работа с git. Хотя пожалуй еще не придумали лучшую работу с git, чем из терминала.

Автодополнение, документация, рефакторинг и т.д. - это решается rope и вообще python-mode в целом.

Навигация по проекту: дерево файлов, поиск всего и вся по всему проекту. Создание проекта из директории (на сколько я понял нужно rope указать директорию)

Перечень меток навроде «TODO»

Множественное выделение аля емакс - нашел такой плагин: https://github.com/terryma/vim-multiple-cursors

Какими плагинами реализовать вышеперечисленное и что еще удобного посоветуете?

UPD:

А еще что есть для Jinga2/Django темплейтов, и HTML в целом. Например выделить блок текста, тыкнуть комбинацию и блок текста засовывается в <div>...</div>

★★★★★

Удобные сниппеты аля в Geany. Т.е. повесил

Понятия не имею как там в Geany, но есть годное дополнение Snimate - есть предустановленные сниппеты, легко и просто добавлять свои.

Автодополнение

YouCompleteMe

дерево файлов

NerdTree

Создание проекта из директории

project.vim

Та же рекомендую:
nerdcommenter - удобное комментирование\раскомментирование.
vim-strtify - классный стартовый экран с списком последних файлов и закладками.
syntastic - подсветка ошибок в коде.
gundo - графическое древо изменений - очень удобно откатываться.
rainbow_parentheses - подсветка парных скобок разными цветами
vim-repeat - применение последней операции к текущему положению курсора по нажатию точки.

А вообще читай вот (всё на русском):
http://habrahabr.ru/post/196550/
http://habrahabr.ru/post/224979/
http://www.uralbash.ru/2013/11/python-vim.html
http://frenzykryger.blogspot.ru/2013/01/pycharm-vim.html

najlus ★★★★★ ()

удобный быстрый автокомплит + сниппеты: neocomplete + neosnippet[/ur] + neosnippet-snippets

Удобная работа с git

vim-fugitive + к нему: vim-extradite + vim-merginal + если нужно vim-gitgutter

+ как сказали, посмотри здесь, много чего интересного есть, особенно полагаю тебе подойдет vim-fifo для тестов, а если через tmux, то vimux.

clojure ()
Ответ на: комментарий от najlus

например тем, что обновляется и развивается (кстати в него вошел rainbow_parentheses и другие подобные), короче попытка сделать один, но мощный и точный плагин.

clojure ()
Ответ на: комментарий от clojure

например тем, что обновляется и развивается (кстати в него вошел rainbow_parentheses и другие подобные), короче попытка сделать один, но мощный и точный плагин.

Понял, спасибо.

najlus ★★★★★ ()

раз уж вимеры подтянутся в вим-тред, которых мало и редко в последнее время, зацените:

nnoremap  <Leader>z    :let &scrolloff=999-&scrolloff<CR>
(и пробуйте j/k). хотя я раньше вот так делал, что удобнее без вкл./выкл.:
nnoremap  <C-j>        4jzz
nnoremap  <C-k>        4kzz

clojure ()

VIM как python IDE

Пожалуйста нет, просто возьмите PyCharm

umren ★★★★★ ()
Ответ на: комментарий от clojure

попробуй https://github.com/amdt/vim-niji

Что-то разобраться с ним не могу. Поставил, прописал в vimrc

let g:loaded_niji = 1
let g:niji_dark_colours = 1
let g:niji_match_all_filetypes = 1
А оно не фурычит.

najlus ★★★★★ ()
Ответ на: комментарий от najlus

слушай, прошу прощения, оказывается он не такой универсальный, получается заточен больше под лиспы и там, где действительно много скобочек (ну и loaded_niji = 1 это отключение если что, а niji_match_all_filetypes такой опции уже нет).

clojure ()
Ответ на: комментарий от umren

Пожалуйста нет, просто возьмите PyCharm

Проприетарная ерунда этот ваш пичарм. Пробовали.

Siado ★★★★★ ()

Сиди под PyCharm пока не придешь к тому что половина перечисленного не нужна (хотя 90% этого реализуется самим vim'ом без плагинов).

Как постигнешь дзен - ставь syntastic и включай модуль проверки синтаксиса по своему вкусу (я пользуюсь flake8). Получишь лучшую «Python IDE».

С git'ом лучше всего работать из под zsh (oh-my-zsh c темкой по вкусу) и каким-то таким ~/.gitconfig:

[alias]
    st = status
    ci = commit
    co = checkout
    br = branch
    d = diff
    dc = diff --cached
    lg = log -p
    lol = log --graph --decorate --pretty=oneline --abbrev-commit
    lola = log --graph --decorate --pretty=oneline --abbrev-commit --all
[color]
    ui = auto
    branch = auto
    diff = auto
    interactive = auto
    status = auto

зы. python-mode не нужен, думаешь иначе - см. первое предложение про PyCharm

ei-grad ★★★★★ ()
Последнее исправление: ei-grad (всего исправлений: 1)
Ответ на: комментарий от umren

Не в исходниках дело, а в том, что громоздко и не удобно.

Siado ★★★★★ ()
Ответ на: комментарий от ei-grad

python-mode не нужен

А чем тебе питон-мод не угодил?

Siado ★★★★★ ()
Ответ на: комментарий от najlus

есть годное дополнение Snimate

Устарело же. Есть ultisnips, как раз с YCM интегрируется.

Anrock ()
Ответ на: комментарий от clojure

Чем neocomplete лучше YCM, кроме того, что последний под винду сложновато собрать?

anonymous ()
Ответ на: комментарий от ei-grad

Как постигнешь дзен - ставь syntastic и включай модуль проверки синтаксиса по своему вкусу (я пользуюсь flake8). Получишь лучшую «Python IDE».

И никакого автокомплита? Ну и очень зря. Каждый раз в документацию лезть по модулям?

anonymous ()
Ответ на: комментарий от clojure

nnoremap <Leader>z :let &scrolloff=999-&scrolloff<CR>

Зачем такое? Есть же zz. А постоянно держать в центре не нужно.

anonymous ()
Ответ на: комментарий от anonymous

Чем neocomplete лучше YCM

Быстрее, легче, не на питоне (на lua), в общем neocomplete и YCM это как vim и PyCharm, образно говоря.

clojure ()

А подскажите, вимеры, можно ли как-то загружать все эти YCM, neocomplete, UltiSnips, tagbar и т.д только для определенных типов файлов, чтобы не замедлять загрузку vim? Пробовал выполнять pathogen#infect(...) по autocommand FileType - косячит или вовсе не работает. А загрузка vim с плагинами значительно замедлена, что неудобно, когда надо просто отредактировать текстовый файл.

anonymous ()
Ответ на: комментарий от anonymous

А подскажите, вимеры, можно ли как-то загружать все эти YCM, neocomplete, UltiSnips, tagbar и т.д только для определенных типов файлов

продвинутый менеджер плагинов NeoBundle умеет, например:

NeoBundleLazy 'Shougo/neocomplete.vim', {'autoload':{'filetypes':['ruby', 'javascript']}}

clojure ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.