Pull to refresh

Comments 39

В свое время долго игрался с настройками вима, ставил разные сборки (в том числе от упомянутого klen'a)
В итоге пришел вот к такому вот конфигу

sy on
set ts=4 sts=4 sw=4 et ai si
Уж никак не думал, что именно у Python'а, языка, на котором так много современных плагинов для Vim'а пишется, не всё так просто с поддержкой в самом Vim'е.
Мне всегда нравился и нравится vim. Мощный редактор, если довести настройку до ума, то можно все, что угодно на нем делать. А то меня тут на днях обломали, говорят, что nano по сравнению с vim просто монстр, а vim курит в сторонке… Даже всплакнуть захотелось…
> говорят, что nano по сравнению с vim просто монстр
Зовите их сюда, наша армия вимеров быстро научит их бикать и портить файлы
> nano по сравнению с vim просто монстр
(setq sarcasm-mode 1)
(message "Это тот, в котором нужен специальный ключик, чтобы undo\redo работало?")
(setq sarcasm-mode 0)

Другой способ — использовать neocomplcache. Кроме установки плагина, нужно задать omnifunc для питоновских файлов:
Зачем? Эта настройка задаётся в python-mode-klen. В вашем варианте вы используете поставляующуюся с Vim.
UFO just landed and posted this here
UFO just landed and posted this here
Я использую PyCharm с IdeaVIM. Раздражает, что IdeaVIM периодически глючит (последние версии реже), и местами работает не как vim, например cw ставит курсор не там, где vim, но привыкнуть можно.

Допиливать emacs или vim до уровня PyCharm — практически невыполнимая задача, требующая месяцев, думаю. Мне надоело.
emacs знает о контексте и показывает в автокомплите то что нужно
Помимо автокомплита, который я вообще не считаю такой уж полезной и необходимой возможностью, в PyCharm есть миллион других фишек, которые впилить в Emacs/Vim будет нелегко. Впрочем, с выхода первой версии PyCharm я перестал пользоваться vim/emacs (точнее, еще пользуюсь иногда vim) и следить за их развитием. Но во времена выпуска первой версии PyCharm попытка настроить подобное окружение в Emacs казалась мне почти невыполнимой задачей. Что-то удавалось соорудить, но все работало коряво, ненадежно и очень медленно.

Кроме того, автокомплит в PyCharm работает и в шаблонах (в том числе, он знает о тегах и фильтрах проекта), и в Javascript. Вообще, лучшей поддержки Javascript, чем в Idea/PyCharm я не встречал, хотя перепробовал многое.
С чего вы решили, что в VIM нет автодополнения в контексте? Все есть и работает не хуже PyCharm.
UFO just landed and posted this here
Я с PyDev не работал, но по памяти впечатления от Eclipse неприятные. PyCharm уважаю, хоть в нём и присутствует такое же Java послевкусие как и в Eclipse. Я бы ушел на PyCharm, если бы эта большая, платная IDE дала мне хоть что-то, чего я не могу получить в VIM. Отладка, рефакториг, дополнение по контексту, инспекция и автопроверка кода и тд, все есть в VIM. Если что-то мне еще понадобится я напишу расширение для него на python, tcl, ruby, vimlang или вообще на shell, а попробуйте написать расширение для PyCharm. И что немаловажно на любом удаленном сервере я в 2 команды смогу поднять VIM со своей конфигурацией и получить такую же ID прямо в терминале. С Vim у тебя вся система на кончиках пальцев, с PyCharm ты привязан к паутине менюшек.

Но PyCharm не будет конкурировать с Vim, скорее с вещами наподобие Sublime, куда уже мигрируют косяки апологетов PyCharm уставшие от хищного оскала Java выглядывающего из ее окошек. Vim же останется пререгативой джедаев, особой консольной магией :)
UFO just landed and posted this here
Отладка, рефакториг, дополнение по контексту, инспекция и автопроверка кода и тд, все есть в VIM.

Напишите, пожалуйста, какими плагинами пользуетесь, что у Вас в vimrc?
Уже ли VIM может поменять имя класса во всех файлах проекта? (а, стоп, в VIM же нет проектов). Или поменять имя параметра в методе. Или импорты оптимизировать. Может там ещё и одним хоткеем коммит+пуш?)
Я чувствую сарказм в вашем комментарии. Но самое смешное всё что вы перечислили в VIM есть :)
Никакого сарказма, действительно было интересно. Есть вообще что-нибудь, чего нет в VIM? (понимаю, что можно написать любой плагин, но тот же pycharm из коробки имеет очень крутые штуки типа conditional breakpoint или watches)
Если говорить про breakpoints то лично я в VIM ставлю/убираю хоткеем ipdb прерывание и прекрасно выпадаю в консоль на брекпоинте где могу исследовать стек фрейм и любые объекты в нём. Даже и не знаю, как это можно улучшить, вроде бы есть плагины и в этом направлении, но мне хватает за глаза того, что я описал.
Guido van Rossum:
> I tried PyCharm today… In the end, I'll probably use it for the occasional extreme debugging session but my main development tool will remain Emacs plus pdb. The combination of the «old» python-mode (the one by Tim & Barry & company) with Ken Manheimer's pdbtrack still works pretty well.
https://profiles.google.com/115212051037621986145/buzz/CGh9MoWU53V

Matz, если не ошибаюсь, тоже на emacs пишет.

Примерно как-то так так… работают же люди…

Лично мне Vim нравится, особенно расширение Клёнова. Но уже просто привык к Emacs, который, в принципе, всем устраивает. Особенно, если учитывать, что 99,9% работы делается через консоль на удаленных серверах.
UFO just landed and posted this here
Люди просто 20 лет работают в Emacs и менять основной инструмент просто нет смысла, какими бы киллер фичами он не обладал (даже Emacs-like комбинациями клавиш). Просто не получится оставаться таким же продуктивным и получать тоже удовольствие от редактирования. Мне очень понравилась фраза Линуса по этому поводу, которую я встретил в комменте к первому коммиту uemacs: My fingers cannot be retrained.

Я тоже практически всю разработку веду в Emacs (C/C++, python, Haskell, etc.), и пересаживаюсь с трудом. Только с java (и, отчасти, со Scala) это достаточно сложно, и IntelliJ IDEA выручает.
Удивительно было услышать о Guido van Rossum как о поверхностном человеке. Полагаю, вы знаете, кто это такой.

Скорее наоборот. Люди подходят поверхностно к изучению «ropevim» и «ropemacs».

Кстати, в Emacs используется python.el от fgallina с ревизии 108614. А у него автокомплит из ipython. Таким образом, последние версии Emacs подсказки для автокомплита получают от самого интерпритатора. Мне сложно вообразить более «контекстные» подсказки.

Лично у меня любой проприетарный редактор на внутреннем уровне вызывает отторжение. Я не могу чувствовать себя программистом, если у меня нет возможности программировать даже свой редактор. Это как с подрезанными крыльями, что-ли… сложно описать.

У нас вообще, не консольные редакторы ласково именуются «мягкотелыми». Консольные редакторы используются преимущественно по причине разработки на серверах, ввиду специфики проекта и определенных сложностей локальной инсталляции.
UFO just landed and posted this here
Скажем так. Если последнее утверждение верно, то такой занятый человек как Гвидо, нашел в своем графике время для написания поста о том как он «поверхностно» изучил PyCharm. Что-то не сходится. Это равносильно тому, что он поверхностный человек, ибо как еще можно назвать человека, который на весь мир трезвонит о своем поверхностном мнении?

Тут уместен иной вопрос, а с чего вы взяли, что они изучил PyCharm поверхностно? Только потому что его мнение не совпадает с Вашим? Или Вам беспокоит то, как вы будете выглядеть со своим мнением на фоне авторитета Гвидо?

Лично я благодарен ему за то что он не продал свое личное мнение, и говорит о вещах с позиции своего искреннего мнения. А ведь мог ради денег и торгонуть своими принципами.
UFO just landed and posted this here
> помнить 100500 комбинаций клавиш

— Вот Вы снова даете оценочное суждение, совершенно не владея вопросом. Откуда такая цифра? Эта тедненция может завести Вас в нехорошую ситуацию, не раз приходилось такое наблюдать. Старайтесь придерживаться истины.

Не даром гласит народная мудрость «Сказанное сто рублей стоит, несказанному и цены нет».

Справедливости ради, можете попробовать подсчитать количество перемешений и кликов мышки, а так же перемещений руки от клавиатуры к мышке, при использовании графических ИДЕ. А то как-то однобоко получается. Но ведь вопрос не в этом.

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

Если человек следует «путем творца», — он не приемлет над собой контроля. Исходя из этого он и выбирает себе инструменты. Это внутреннее мироощущение, а не финансовый рассчет.

Вы посмотрите на свои слова со стороны. Ребята обсуждают настройки Vim. Появляетесь Вы, и говорите, что не понимаете Vim, и начинаете рекламировать PyCharm (бескорыстно ли?). При этом Вы открыто признаете, что соверешенно не осведомлены о возможностях консольных редакторов. Но это незнание не мешает делать Вам негативных выводов (тогда на основании чего?). Но ведь тема-то не о PyCharm, а о том, как настроить Vim.
UFO just landed and posted this here
А вот я считаю дополнение по Tab в редакторе злом. Tab — табуляция, а не дополнение, Ctrl-N/P для дополнения, как мне кажется, больше подходит.
Я так понимаю, вы не работаете в линуксовой/юниксовой командной строке?
Работаю, постоянно, потому так и говорю. Командная строка и редактор — две разные вещи. В командной строке табулировать что-то приходится редко, в редакторе — наоборот. Потому в командной строке Tab для дополнения вполне подходит, а в редакторе — нет.
В таком случае, дело привычки, КМК. Если вы начинаете набирать название функции/метода/ключевое слово, табуляция в середине нужна довольно редко ;) А автодополнение для многих (линуксоидов) в этом случае выглядит привычно и органично.
Как редактор может знать, что это середина слова? А если это новый идентификатор, после которого я хочу отступ? Да мало ли, зачем. Переназначение клавиш по ходу ввода текста — зло, а выключение табуляции насовсем тоже не подходит. Автодополнение органично в командной строке; оно у меня, кстати, настроено по Tab в командной строке вима тоже. В редакторе — ни в коем случае.
> Как редактор может знать, что это середина слова? А если это новый идентификатор, после которого я хочу отступ?

Из примера вначале статьи — return Group.o — оригинальные у вас идентификаторы.

Хотя в целом ваша точка зрения мне понятна, конечно. Я просто пытаюсь вам объяснить, что табулятор в качестве автодополнения — хорошая для многих идея.

Кстати, а ESC разве не убирает автодополнение и не возвращает ТАВ-у его первоначальное значение? Просто интерессно, поскольку упомянутые расширения раньше не использовал, а попробовать время будет только вечером.
Мне кажется, что стандартный вимовский completion вполне достаточен.Плагины кроме tagbar практически повторяют стандартный функционал вима «из коробки».Они не нужны.
Sign up to leave a comment.

Articles