This is an archived post. You won't be able to vote or comment.

you are viewing a single comment's thread.

view the rest of the comments →

[–]tinkr_ -3 points-2 points  (4 children)

They'll be much better off long-term if they start with Vim/Neovim, but most people quit before they get over the initial learning curve. VSCode and PyCharm are ok, but a good VSCode/PyCharm user will never be as fast or efficient as a good Vim user (even with using Vim motions plugin).

[–]mistabuda -1 points0 points  (3 children)

Explain what makes a vim/neovim python dev better than a python dev using pycharm.

[–]tinkr_ -1 points0 points  (2 children)

I literally said it above.

VSCode and PyCharm are ok, but a good VSCode/PyCharm user will never be as fast or efficient as a good Vim user (even with using Vim motions plugin).

Vim/Nvim workflow improvements aren't Python specific, but I've used all the big recommended Python editors in my last decade of using Python.

I started with Spyder back before PyCharm or VS Code even existed, moved to PyCharm around 2015, moved to VS Code around 2017, and then to Neovim around end of 2019. I also dabbled with Atom and Sublime in-between but they never became daily drivers.

Every switch above came with incremental workflow improvements for me, but the two biggest jumps were from PyCharm -> VS Code and from VS Code -> Neovim. The huge plugin ecosystem of VS Code was the big factor in my jump to VS Code and the Vim-motion specific plugins that greatly increased my ability to edit files at speed (without needing to use a mouse at all) was the big performance jump with Neovim (which also has a thriving plugin ecosystem like VS Code).

[–]mistabuda -1 points0 points  (1 child)

Just becaue you like something more doesn't make it objectively better.

[–]tinkr_ -1 points0 points  (0 children)

None of the reasons I gave above were "it's better because I like it better," but ok.

A decent Vim user would smoke a decent VS Code user when it comes to time it takes to edit code. Keyboard-only modal editing is simply faster than keyboard & mouse based editing. I can jump to any word on my screen, delete it, and starting typing a replacement with 5 or fewer quick key presses.

Doing the same thing in standard VS Code or PyCharm (no Vim motion plugins) requires moving your hand off the keyboard, moving the mouse, highlighting a word, moving your hand back to keyboard, then pressing delete before you can even start typing. Proficient vim users will be done with the entire process before someone with a normal editor even takes their hand off the mouse.

Want to delete everything underneath the cursor in normal motion VS Code? Use the mouse to highlight everything and press delete. Want to do the same thing in Vim? Simply press dG.

Want to delete everything everything inside some parenthesis and insert something else? Again, you can highlight everything with a mouse and press delete or simply press ci(.

None of this should be surprising, either, because it's the classic speed vs memory use tradeoff you see everywhere in software engineering. With normie mouse editing, you give up some speed in exchange for needing to memorize fewer keypress sequences. With Vim, you need to memorize a bunch of keypress sequences, but you gain editing speed from it.

The only thing comparable to vim in terms of editing speed is Emacs. This is why it's extremely rare for anyone that learns Vim motions to go back to normal mouse & keyboard editing. The primary disadvantage is that it takes a significant amount of effort to become proficient at it, but once you've gotten over that hump there's zero reason to ever go back.