Live data from Hacker News

Using Vim as a Python IDE

liuchengxu.org

81–90 of 158 posts

Re: Using Vim as a Python IDE

#81
I would love to replace Syntastic with ale, but (1) is there a way to have it just highlight the line with the error instead of using the gutter? And (2) is there a way to get it to use pyflakes instead? pylint is a little too aggressive: it complains about modules it can't import which is by design in my working environment.

Re: Using Vim as a Python IDE

#82
post #58

Earlier quoted context omitted.

Thing is, you only need to configure Vim once, and then use your version controlled config everywhere for 10 years, very gradually improving it. I doubt VSCode will even exist in 10 years.

Are any of your plugins from 10 years ago still around? You can't compare naked Vim with VSCode. Also, Visual Studio has been around since 1997 and there's no reason to assume, out of hand, that VSCode won't last as long, being both popular and Open Source. I'm a Vim user, but cut the FUD.

> Are any of your plugins from 10 years ago still around?

Ctrlp, python (the filetype plugin), vimwiki... most of them honestly.

> You can't compare naked Vim with VSCode.

If you're doing C programming, it's probably close to equivalent out of the box. For Python development, you'll want to at least get the Python plugins; but you'll be doing that in most editors.

IMO, VSCode is interesting, but it's not that spectacular if you've been using any form of IDE (or a decent text editor with plugins). That is, it doesn't offer any major advantages over the other editors.

Re: Using Vim as a Python IDE

#83
post #63
post #51

Earlier quoted context omitted.

I have almost all of this in both emacs and vim and it only took me 5 years to get it just right.

Can you elaborate on how you handle the project thing? I really miss having the concept of "solution" and "project" in Vim from VS. Not just to have my files grouped logically in a $Project/{source,include}/blah.{h,cpp} tree, but also to be able to apply per-project settings like clang-complete options, etc. Right now I don't see a way to have e.g. three different projects that all build from the same files, but use…

Part of why I switched to emacs was something called helm: https://tuhdo.github.io/helm-intro.html It fuzzy matches almost anything: files, function names, or commands

Project grouping in the traditional sense can be done with projectile and NeoTree. http://projectile.readthedocs.io/en/latest/ https://github.com/jaypei/emacs-neotree/blob/dev/README.md

I think what you are describing in the second half can be handled with company mode and triggering a major/minor mode off a file extension. https://www.gnu.org/software/emacs/manual/html_node/emacs/Ma...

http://company-mode.github.io

If that's not it it's possible Googling will find exactly what you describe. People tend to port anything useful from any editor to emacs.

Re: Using Vim as a Python IDE

#84

Seriously people this is 2017! We have the technology. Learn vi in order to have the same editing experience everywhere but honestly when it comes to IDEs, there are just really good software packages out there with 0 configuration hassle.

You imply that vim is somehow technological inferior to some other tool. I take issue with that. I don't use vim because I have to or some silly 'vim everywhere' argument. I use it because it is a demonstrably superior text editing appliance. Every so often when vim irritates me I try out PyCharm or vm-whatsit, and while IDE's do have better viz for some use cases, the actual act of manipulating code in-buffer never…

I'm in the same boat. Local development only, my terminal is still my IDE. Other editing tools I've attempted and jumped back out of:

PyCharm - No good vim emulation for editing

Spacemacs - Soft locks, Ctrl-] doesn't follow the same word boundaries as Meta-. (which matches Vim's implementation)

Sublime Text - Closest fit (enough that I own a personal license), but again, the vim emulation is pretty bad.

Atom - Slow. Even at its fastest, it's noticeably slower than Vim

VSCode - Slow (though faster than Atom), no good vim emulation.

Yes, most of my criticisms form around the lack of good vim emulation - my muscle memory is very well established. I've just yet to find a good, responsive, and comfortable editing scheme from a non-Vim editor.

Re: Using Vim as a Python IDE

#85

Nice post. I also really like you "space-vim" project. Another similarly named project — "SpaceVim" http://spacevim.org/ — was posted recently. "SpaceVim" was really upsetting because it missed so many of the important ideas of Spacemacs, such as pneumonic keybindings. "SpaceVim" is a garden variety vim distribution coopting the "Spacemacs" name, but you stayed true to the "Spacemacs" principles. Nice work!

This threw me for a second but its "mnemonic" not "pneumonic".

Until I read your comment I was trying to figure out why they called them air-propelled keybindings, not finding any obvious analogies...

Re: Using Vim as a Python IDE

#86

Seriously people this is 2017! We have the technology. Learn vi in order to have the same editing experience everywhere but honestly when it comes to IDEs, there are just really good software packages out there with 0 configuration hassle.

You imply that vim is somehow technological inferior to some other tool. I take issue with that. I don't use vim because I have to or some silly 'vim everywhere' argument. I use it because it is a demonstrably superior text editing appliance. Every so often when vim irritates me I try out PyCharm or vm-whatsit, and while IDE's do have better viz for some use cases, the actual act of manipulating code in-buffer never…

Agreed, mostly. Also I love your pun.

I recently switched back to doing Java almost 100% of the time and have been using IntelliJ. There are definitely a lot of Java-specific features I use very heavily that I wouldn't be able to get without a lot of of time and plugins in Vim. But sometimes I hit weird bugs that highlight the relative complexity of the core, and I often feel frustrated by how light-weight it isn't (granted, I've tried some other Java IDEs and it's amazing by comparison).

But I used to work more with various scripting languages, and my gvim setup just couldn't be beat. So light-weight, but easy to set up again if I needed to. Still able to navigate code structures, debug without context switching. I often did something with a partner that amazed them, because they couldn't do it with their IDE; my favorite thing in the world is the look on someone's face when I select a rectangular section of text and change the indentation without affecting the stuff on the left. It was incredibly productive for years. I still occasionally go back there when I'm working in a single Java file, because the vi emulation mode in IntelliJ isn't quite there and I can manipulate the raw text so much faster in gvim.

Re: Using Vim as a Python IDE

#88
post #73
post #53

Earlier quoted context omitted.

I use vim via ssh and in tmux everyday. I mostly love it. But sometimes there are merge conflicts. I've settled for xpra and kdiff3 as the mergetool. I just can't handle the problem without a GUI tool.

But isn't it still easier to use a proper IDE in the local machine with Linux/Windows/OSX gui and then just git push the code? What advantages does your setup have?

Most 'proper' IDEs have no or terrible merge tools.

Re: Using Vim as a Python IDE

#89

Earlier quoted context omitted.

Well this is your use case. I use Linux every day but I never touch python code directly on remote systems (it's getting automatically or manually deployed). All my python code lives in virtualenv locally here. But I understand when people work for many projects they maybe want to encapsulate it more (vagrant etc.).

I prefer console in general, for everything. I've been doing this for 20+ years, and you can pry it from my cold, dead hands.

I've only been coding for 11 years professionally, but also as a hobby before that. Only in 2016 did I move most of my work out of VIM into an IDE: the Jetbrains family. That mostly started for better interactive debugging, but with IDEAVim handling 95% of my VIMisms I find that I'm simply coding in PyCharm and PhpStorm by default now.

The base editor is open source but you can get the full PyCharm for $99 per year. Worth every cent.

Re: Using Vim as a Python IDE

#90

Yesterday I've downloaded VSCode and https://github.com/DonJayamanne/pythonVSCode (seriously, look at the GIFs in this repo!) for first time and I had autocompletion (with IntelliSense and documentation lookup), refactoring and code define jumping for Python code out of the box working within 10 minutes in a VirtualEnv. VSCode + one plugin (all opensource) and I had something similar to PyCharm and fast. (nothing aga…

VSCode/Atom are great, but for most folks on UNIX they are worthless, since you have to use something else when ssh-d into another machine. So folks build these elaborate Vim and EMACS set-ups so that they could use the same editor and the same config on all of their machines, whether they're local or remote. Vim is an acquired taste, but once acquired, it's pretty awesome.

Modern GNU/linux filemanagers support connecting to ssh server and browse and open and edit files just like they are local. You can do it in two seconds.

In ubuntu it's file -> connect to server -> type in ssh://username@ip

That's it you are done. You can now browse the files as if they are local and use sublime/gedit/VSCode/Pycharm/whatever you want

Post reply on HN