

Vim as a Python IDE, or Python IDE as Vim - ColinWright
http://blog.jetbrains.com/pycharm/2013/06/vim-as-a-python-ide-or-python-ide-as-vim/

======
mmahemoff
I think JetBrains' IDEs are the best around. But I'm sorry, IdeaVim is not
Vim.

I've tried hard to use JetBrains' IDEs, having paid full-price for IntelliJ at
one point, and later RubyMine. And the thing that stopped me both times was
IdeaVim not being good enough. It has reasonable functionality, but you can
forget about using any standard Vim plugins, muscle memory gets confused when
some things don't work, and it can really slow things down. Playing back
macros (which it does at least support) can grind the editor to a halt.

So I went back to Vim. Running NERDTree and most importantly NERDTreeTabs
plugin. As well as other useful stuff like Ctrl-P. It's a good setup. Not
perfect; it's still fundamentally a 30 year old editor and it seems like
something's wrong not to be able to take advantage of all of the great
features in IntelliJ's tools, but text editing is still the highest priority
when coding.

------
sluukkonen
I can share much of the thoughts regarding RubyMine (a Ruby IDE by JetBrains).
While it is not the best text editor out there (I used to use Emacs for Ruby
stuff), the IDE features are great and (for me) outweight some of the niceties
that Emacs or Your Favourite Text Editor has. Symbol navigation works across
libraries and the graphical debugger is great. Autocompletion could be better,
but I understand how the dynamic nature of Ruby (and especially Rails, which
uses a lot of metaprogramming magic to do its thing) makes it sometimes hard
to do 100% accurately.

(I'm not affiliated with JetBrains, just a happy customer)

~~~
rpc_was_taken
In the same vein, I've been very happy with AppCode, the Objective-C IDE from
JetBrains. Its refactoring, templates and code generators are a great time
saver. The vim emulation sometimes falls short compared to vim (missing Ctrl-N
autocompletion and surrounds very much), but allows me to edit quite
efficiently nonetheless, while having a comptetent autocompletion engine.
(Also just a happy customer)

------
hyperbling
i'm a big fan of jetbrains, but this is a poorly written article.

> Here is a poignant example of Vim being overloaded.

i don't see how this is any different from opening every toolbar window in
PyCharm and cluttering the interface.

> Nothing can replace Vim, but IdeaVim feels closer than any other editor’s
> attempts

emacs evil does the best emulation. IdeaVim fails at two of the most important
emulation tasks: escape and undo.

i used webstorm for a while to do javascript/html, but once i got proficient
with vim it wasn't even close. just like how people are going crazy with
livereload and how it makes development awesome, that's how i feel with using
vim. it does what i tell it to do NOW, not 3 seconds from now.

------
Ensorceled
Vim is a vi clone with a massive number of improvements and extensions. The
title should have read:

Vim as a Python IDE or Python ID with some vi stuff added

Because, I don't love vim for hjkl and "some" ex commands.

------
bobbymanuel
Im a vim nutball - and i now swear by pycharm + ideavim. I had been using
plain vim as my python editor for a long time - and still use it for remote
editing and on the fly fixes; That being said, I tried out pycharm with the
ideavim about three months ago and it has improved my productivity and the
quality of my code base. Pycharm brought several things together: excellent
refactoring capabilities, visual step through debugging with realtime
pause/breakpoint edits and gevent support, brilliant code and library
navigation, code inspection, selective pep compliant formatting that's vcs
friendly, vcs integration (though I still prefer command line hg/git +
vimdiff), autocompletion that's doesn't need to be configured manually, regex
search replace that's actually better than <,>s/a/b/, fast switching between
virtual envs, recognition and maintenance of requirements.txt files, support
for multiple vcs flavors, and automatic and frequent detection of remote
changes.

Ideavim Is not vim. But it does support enough vi features for me to work with
extreme productivity. If there were a couple of things that I have to flag as
killer fails, it's the poor support for change lists and vsplit/split.
Navigating backwards and forwards through changes doesn't work very well in
ideavim - there are workaround, but nothing so primal as g[;,]. Other than
that I don't find myself missing all that much - the hybrid of core vi
features with IntelliJ features more than makes up for the missing vim
features - I could never go back.

------
randlet
My personal favourite IDE for Python is WingIDE...the introspection, code
completion and debugger are very impressive (step through Django templates in
the debugger!).

I recently switched to editing in VIM and using jedi-vim & a few other plugins
to get the same Python experience that WingIDE delivers. My conundrum is that
I absolutely fell in love with vim (this was my third or 4th go round with vim
fwiw) as a text editor but the Python experience can't touch Wing. Wing has a
vi mode, but it is not even close to being an actual vim editor. Now I find
myself constantly flip-flopping between Wing & vim and finding both slightly
unsatisfactory.

I've tried JetBrains, but prefer Wing as it seems _smaller_ and easier to
configure. I don't have enough experience with IdeaVim but I'm almost certain
it won't deliver a proper vim experience (comments by mmahemoff seem to back
this up).

I think I will probably settle on vim and live with the reduced Python
integration...and possibly switch back to Wing when using a big unfamiliar
library...The introspection is a huge help when exploring something like
wxPython or QT.

~~~
koloron
I'm currently looking to adapt vim for Python development. What are the other
plugins that you use or would you possibly even share your .vimrc?

~~~
randlet
.vimrc isn't available to me right now, but off the top of my head the ones I
use the most are CtrlP, Flake8, supertab, jedi-vim, surround, UltiSnips and
solarized color scheme.

------
thejosh
Really, commercial software shitting over opensource alternatives is bad
taste.

~~~
mheathr
This article really removed some of my enthusiasm for Jetbrains products, even
though I like them a lot.

It's incredibly ignorant and blatantly false to anyone knowledgeable about
both.

As an example, I don't know how the author could claim that IDEAVim is
comparable to the emulation either EVIL or ViEmu has, and that claim would not
be so bold if IDEAVim was not a facsimile of even VI.

And using Python as an example to use in a lie is not very smart as it is one
of the better supported languages in VIM for those trying to emulate an IDE's
features to an extent.

It's not as though Jetbrains is trying to sell itself as a VIM replacement,
that angle is nonsensical as one is an IDE and VIM's quite antagonistic to
merging non-text editing features into the defaults.

Plus, lets assume the author's claims are true.

The author claims VIM is horrible, but then concludes by championing what the
author just finished deriding as something PyCharm is a paragon of (VIM's
design), what?

The article is incredibly distasteful and tries to sell a lie to an incredibly
technical audience deft at parsing nuanced information that is much more
knowledgeable about the domain than the author portrays.

There is no reason for Jetbrains to promote such base trash instead of
continuing to stand on its own merits, which it has been doing well so far.

I hope Jetbrains has the integrity to at least apologize for the blatant
stupidity on display in the article soon as it is horrible in all facets and
very insulting.

------
bsaul
Currently using eclipse with pydev and frustrated by the lack of tooling and
general understanding of my code by the IDE (mainly due to python's dynamic
nature of course, but still). Would anyone here knows a better alternative ?

PS : i'm on mac

~~~
andybak
Erm. PyCharm?

------
rjzzleep
a lot of the features mentioned in the post are available in vim plugins. not
only that, but

