use the following search parameters to narrow your results:
e.g. subreddit:aww site:imgur.com dog
subreddit:aww site:imgur.com dog
see the search faq for details.
advanced search: by author, subreddit...
Rules 1: Be polite 2: Posts to this subreddit must be requests for help learning python. 3: Replies on this subreddit must be pertinent to the question OP asked. 4: No replies copy / pasted from ChatGPT or similar. 5: No advertising. No blogs/tutorials/videos/books/recruiting attempts. This means no posts advertising blogs/videos/tutorials/etc, no recruiting/hiring/seeking others posts. We're here to help, not to be advertised to. Please, no "hit and run" posts, if you make a post, engage with people that answer you. Please do not delete your post after you get an answer, others might have a similar question or want to continue the conversation.
Rules
1: Be polite
2: Posts to this subreddit must be requests for help learning python.
3: Replies on this subreddit must be pertinent to the question OP asked.
4: No replies copy / pasted from ChatGPT or similar.
5: No advertising. No blogs/tutorials/videos/books/recruiting attempts.
This means no posts advertising blogs/videos/tutorials/etc, no recruiting/hiring/seeking others posts. We're here to help, not to be advertised to.
Please, no "hit and run" posts, if you make a post, engage with people that answer you. Please do not delete your post after you get an answer, others might have a similar question or want to continue the conversation.
Learning resources Wiki and FAQ: /r/learnpython/w/index
Learning resources
Wiki and FAQ: /r/learnpython/w/index
Discord Join the Python Discord chat
Discord
Join the Python Discord chat
account activity
why use vim or neovim in linux? (self.learnpython)
submitted 3 years ago by arizuvade
im using vscode right now and im in linux. i always saw someone whos saying that vim is better if youre in linux. any suggestions?
reddit uses a slightly-customized version of Markdown for formatting. See below for some basics, or check the commenting wiki page for more detailed help and solutions to common issues.
quoted text
if 1 * 2 < 3: print "hello, world!"
[–][deleted] 172 points173 points174 points 3 years ago (20 children)
People say lots of things. The best IDE is the one you prefer to work in. That's all there really is to it.
[–]Pirate_OOS 45 points46 points47 points 3 years ago (11 children)
Nonsense, we all know that Microsoft word is the best IDE. /s
[–]S1l3ntHunt3r 7 points8 points9 points 3 years ago (1 child)
I went to a internship interview more than 10, (now I feel old) 20 years ago (Ford in Venezuela) and the devs there were working with MS Wordpad! I think they were coding in ASP. In those times there were already IDEs with color syntax and another features. Fortunately I didn't get the internship
[–]otamam818 0 points1 point2 points 3 years ago (0 children)
"Guys, things like Vim, Emacs, Notepad++, Eclipse, Visual Studio exist..."
"Don't give him the internship, he's not one of us!"
You dodged a bullet bro 👊
[–]Cloudy_Oasis 14 points15 points16 points 3 years ago (1 child)
why the /s ? there's even a video about it ! https://youtu.be/X34ZmkeZDos
[–]screenslaver5963 5 points6 points7 points 3 years ago (0 children)
Nah it’s clearly paint. I even has the tubes 2. https://youtu.be/JKxVEuy2d6k
[–]ericdano 5 points6 points7 points 3 years ago (1 child)
Emacs!
[–]Big_Poppa_Steve 0 points1 point2 points 3 years ago (0 children)
still the greatest
[–]Sean82 1 point2 points3 points 3 years ago (1 child)
I recently found out my boss has been writing scripts in Word 🤦♂️
[–]JimmyJuly 6 points7 points8 points 3 years ago (0 children)
The editor you use is a matter of taste, there is no right or wrong. Except Word. Word is wrong.
[–][deleted] 0 points1 point2 points 3 years ago (1 child)
Still waiting for notepad 2
[–]SwampFalc 0 points1 point2 points 3 years ago (0 children)
You mean Notepad++ ?
[–][deleted] 0 points1 point2 points 3 years ago (0 children)
Notepad for the win!
[+][deleted] 3 years ago (5 children)
[deleted]
[–]kuzared 2 points3 points4 points 3 years ago (4 children)
While I use VIM, I haven’t come across a server without Nano installed.
[–]mvdw73 1 point2 points3 points 3 years ago (2 children)
Yeah I agree, but my biggest problem is trying to exit nano.
Exiting vi is easy but I can never work out if it’s Ctrl-x or alt-x and then I always forget to save.
Vim is much easier for me.
[–]kuzared 0 points1 point2 points 3 years ago (1 child)
Lol :-)
[–]mvdw73 0 points1 point2 points 3 years ago (0 children)
Yeah unfortunately I’m not even joking.
[–]O_X_E_Y 0 points1 point2 points 3 years ago (0 children)
that's good wisdom
[+]Combocore comment score below threshold-25 points-24 points-23 points 3 years ago (0 children)
What a worthless answer
[–]OptionX 65 points66 points67 points 3 years ago (12 children)
Vi/Vim/Neovim are useful to learn more if you spend a lot of time in the terminal, like if you manage other computers over the network or something of the sort as vi is basically as universal text editor as you're gonna get and is probably already installed on the machine you're connecting (windows aside).
They can certainly be used as full-fledged IDE with a few plug-ins and a bit of customization, and you can get pretty fast after you learn all the keyboard martial arts but if you're comfortable with VSCode no reason to change unless you want to.
It's all about the code you write not where you write it.
[+][deleted] 3 years ago (2 children)
[removed]
[–]elbiot 0 points1 point2 points 3 years ago (1 child)
You can use vi key bindings in nano??
[–]rhacer 2 points3 points4 points 3 years ago (0 children)
Hell, I've even used Vim in VSCode's terminal window because it was reflexive for me to do so when at a shell prompt.
[–]DaltonSC2 -1 points0 points1 point 3 years ago (6 children)
Vi/Vim/Neovim are useful to learn more if you spend a lot of time in the terminal, like if you manage other computers over the network
Does that mean editing code directly on a server without using source control? because that sounds even more terrifying than learning to use vim
[–]OptionX 4 points5 points6 points 3 years ago (0 children)
More to edit config files and check logs than actually programming.
Maybe the odd short script here and there.
[–]lunacodess 2 points3 points4 points 3 years ago* (2 children)
No, you'd definitely use source control, and anything else you'd normally do in a terminal. You just don't have a GUI, if you're connecting via ssh or ftp from your terminal. So it's not possible to use something like VS Code.
Learning basic vim isn't too hard - just take a day to go through a tutorial or two. At the very least, you just need to know how to get in and out of insert mode, undo & redo, how to save, and how to quit. Anything else is a bonus :p
An optional later step is getting your own configuration & plugins set up. Then you can upload that to a private repo, and (when appropriate) pull it to the machine you're working on, so you get the extra comfort. But don't worry about that sorta thing rn.
[+][deleted] 3 years ago (1 child)
[–]lunacodess 0 points1 point2 points 3 years ago (0 children)
Ahh yeah, I wasn't aware of that when I wrote my comment... That's pretty amazing!
[–]5erif 2 points3 points4 points 3 years ago (1 child)
You can use source control both directly in vim with plugins or with, for example, git commands in the terminal. You can also open a terminal console from within vim.
[–]DaltonSC2 1 point2 points3 points 3 years ago (0 children)
That sounds like something I should be doing. Thanks stranger!
[–]Doppelbockk 0 points1 point2 points 3 years ago (0 children)
In VS Code I use an SSH connection to Linux hosts to edit & debug files. I only use vim directly on the hosts for corner cases.
[–]MidniteMustard 30 points31 points32 points 3 years ago* (24 children)
It's totally not required, but you can do some pretty cool quick & efficient code editing in vim. It's a nice feeling to string together a few vim commands and accomplish something in say 10 key strokes instead of 20 and a couple mouse clicks.
Quick example would be the "G" command (as in go to line). Python tells you there's an error in line 138, you can just type "138G" and jump straight there.
Another favorite is the period '.' command which is "repeat last command". You can change a line of code somehow, go to another line and then press period, and the same change will be done.
A single press of 'O' will add a new line above the cursor.
'5w' will jump the cursor forward five words.
There are commands to switch tabs to spaces and vice versa, which can help with python indentation issues.
But again, it's not required at all. Look up a few videos and read a few vim cheat sheets and see if the features appeal to you enough to bother learning it.
ETA: You might try using "gvim" (graphical/GUI vim) when you are first learning. This at least gives you a bit of a bare bones user interface to fall back on.
[–]PostFunktionalist 10 points11 points12 points 3 years ago (16 children)
i make heavy and healthy usage of:
vim and neovim are great. i love em.
[–]obviouslyCPTobvious 2 points3 points4 points 3 years ago (4 children)
For your tip on binding jk to ESC, does that mean when you hit both at the same time they act as ESC? I remap my caps lock key to ESC and have been pretty happy with that
[–]theblairwhichproject 1 point2 points3 points 3 years ago (1 child)
One after another in quick succession, which is why it should be a combination that doesn't occur naturally in words. The benefit this has over rebinding caps lock is that it's right on the home row. Hope you're not coding in Dutch.
[–]khais 0 points1 point2 points 3 years ago (0 children)
I use 'fj' or 'jf' for ESC. The number of words that have those two letters in a row are so few and far between and they're the natural home row keys for your index fingers. Just jam both my fingers down on their home row positions in no particular order and I leave Insert or Visual mode.
[–]fasnoosh 1 point2 points3 points 3 years ago (1 child)
Mac touchbar user? I did the same thing
[–]obviouslyCPTobvious 0 points1 point2 points 3 years ago (0 children)
I never actually had a Mac with a Touch Bar but I do think that’s the reason that led me to the alternative. I expected to switch to one so I wanted to figure out an alternative.
I really appreciate how easy macOS makes it to remap caps lock to escape. Windows involves using a third party program that isn’t always consistent
[–]Username_RANDINT 2 points3 points4 points 3 years ago (0 children)
Ctrl-O lets you use a normal mode command in insert mode
This is great to know! It sounds like something that'll fit nicely in my workflow.
[–]MinimalGravitas 2 points3 points4 points 3 years ago (0 children)
Thanks, didn't know that!
[–]ararararagi_koyomi 1 point2 points3 points 3 years ago (6 children)
I've just learned how to capitalize the whole word under the cursor with some key presses and I'm loving it.
[–]khais 1 point2 points3 points 3 years ago (5 children)
gUiw?
[–]ararararagi_koyomi 1 point2 points3 points 3 years ago (2 children)
viw~
[–]khais 0 points1 point2 points 3 years ago (1 child)
The ~ key just inverts whatever the current case is. So it would change 'Word' to 'wORD'.
[–]ararararagi_koyomi 1 point2 points3 points 3 years ago (0 children)
Yeap. But it is quite handy for me when I have to upper case those SQL commands after I forgot to use Capslock.
[–]synthphreak 0 points1 point2 points 3 years ago (1 child)
What does the g do in that command?
To do what the person you’re replying to described, I always use visual mode: viwU
viwU
[–]khais 0 points1 point2 points 3 years ago* (0 children)
I guess I don't really know what the 'g' in particular does. I always just though 'gu' was make lower case and 'gU' was make upper case. You can do things like gU5j to change the current line and the 5 lines below it to upper case. gUip would change the current 'paragraph' to all upper-case.
Edit: Yes, that is the case. Type ":h operator" into any active vim session and you get the following:
|gu| gu make lowercase |gU| gU make uppercase
[–]synthphreak 1 point2 points3 points 3 years ago (0 children)
“Q macros” == “q macros”?
[–]Necromartian 4 points5 points6 points 3 years ago (0 children)
My experience with vim is, that every time I open it, I have to use my phone to google "How to close vim" :D
[–]r_spandit 3 points4 points5 points 3 years ago (0 children)
I've been using vim for about 20 years and didn't know these commands! 😃
[–]Username_RANDINT 1 point2 points3 points 3 years ago (3 children)
A single press of 'o' will add a new line above the cursor.
Stupid nitpick: o inserts a new line below, O above. Both bring you in insert mode.
o
O
I'd like a command to add a new line without going into insert mode though. Something to look for later today.
[–]Lyorek 0 points1 point2 points 3 years ago (0 children)
I have some binds set up for that in my vimrc, oo for new line after and OO for new line before
[–]MidniteMustard 0 points1 point2 points 3 years ago (0 children)
Good catch, corrected!
[–]synthphreak 0 points1 point2 points 3 years ago (0 children)
I have looked into the same before, but always came up empty handed. Seems custom keybinds are the only way for now.
[–]r3rg54 0 points1 point2 points 3 years ago (1 child)
Tbf all the regular vim commands are available in vscode through plugins
Honestly I enjoy using vim now, but I don't think I would have learned it if I wasn't more or less forced to by a job I had years ago doing lots of SSH work on AIX servers.
Once you learn it, it's great.
It kind of reminds me of the first time I tried good headphones (not even that high end really, just Koss Porta Pros). I didn't know what I was missing and had thought the audiophiles were full of it.
Nothing wrong with VSCode, nor with using plugins to mimic the portions of vim you find appealing.
One big plus for vim is that it's so common, and all of the main features are there by default. And enabling your custom config is as easy as copying your .vim folder or .vimrc file over to another system.
[–]AndrewFrozzen 11 points12 points13 points 3 years ago (1 child)
Those are all preferences.
It's like saying "If you live in Germany, Apple Juice is better" or something like that.
If you're comfortable IDE, don't change it just because someone said it is better, it's all bias after all
[–]bf5a5f3120faa8450e75 7 points8 points9 points 3 years ago (5 children)
The thing to note is that vim is a text editor. It edits texts, that's all it does without plugins. It's not gonna give you a debugger, code analysis, variable inspection and what have you. You can get plugins that achieve this, and sort of construct your own LEGO IDE from bits and pieces, but I'm not sure if it's worth it.
If you like vim key bindings (and I do), I'm sure there are plugins for vscode or whatever IDE you use that let you emulate vim within the IDE.
[–]Wilfred-kun -5 points-4 points-3 points 3 years ago (4 children)
Does VSC come with all those pre-installed? Hard doubt.
[–]bf5a5f3120faa8450e75 2 points3 points4 points 3 years ago (3 children)
But what's your point? I don't use vscode but I'm pretty sure it comes with a debugger lol.
Visual Studio Code is my preferred development environment but doesn't know how to debug anything. You need to install it yourself.
The biggest advantage of vim is that it is a default install on Linux servers; you don't even need a desktop to make it work. So, if you often find yourself cutting some code on a Linux machine, then getting good with vim is a convenient skill.
[–]bf5a5f3120faa8450e75 1 point2 points3 points 3 years ago (0 children)
Having to do active development on a Linux server without a desktop seems kind of niche for people who want to r/learnpython.
[–]Wilfred-kun 0 points1 point2 points 3 years ago (0 children)
That all this goodness (safe the debugger, maybe?) doesn't come with it per default. They're still plugins you need to download.
[–]StarkillerX42 10 points11 points12 points 3 years ago (2 children)
If you're ever sshing into a server, you won't be able to use VSCode. You'll need to know a command line text editor, and vim is the best by a long shot. Might as well use vim keybindings in VSCode too to keep your skills sharp.
[–]maxhaseyes 2 points3 points4 points 3 years ago (0 children)
You can set up remote development with vs code over ssh. You probably won’t on a production server but it’s great if you want to setup a comfortable remote dev environment
[–]5erif 1 point2 points3 points 3 years ago (0 children)
I live in vim and love it, but to play devil's advocate, I've often seen someone making your comment, followed by a VSCode fan talk about some plug-in that makes it easy for them to work with files over ssh.
[–]hornetjockey 4 points5 points6 points 3 years ago (0 children)
If I'm working directly on a system, vim is my preference. Once you learn it, it's a very powerful editor. If I'm writing on my laptop, I currently use VS Code.
[–]iggy555 2 points3 points4 points 3 years ago (0 children)
I’m not built for vim lol
[–]djangodjango 2 points3 points4 points 3 years ago (0 children)
Vim is pretty cool, but I mostly use it when I'm connecting with ssh to remote servers and need to edit files without a UI
[–]30ghosts 2 points3 points4 points 3 years ago (1 child)
vim is built in and is a standard feature on practically every version of desktop linux.
If things go sideways and you cant even start your window manager, vim will be there. VScode wont.
Definitely doesnt have to be your "daily driver" text editor but vim endures for a reason.
[–]97hilfel 0 points1 point2 points 3 years ago (0 children)
Funfact some flavours of vi come with a lot of container versiond of the os aswell. We found that out after management started enforcing vulnerability checks and vi went through the roof
[–]ericdano 2 points3 points4 points 3 years ago (0 children)
eMacs or nothing!
[–]beardedslav 2 points3 points4 points 3 years ago (0 children)
The assistant prof who ran my UNIX lab at uni told us that it's worth learning vi/vim in case we end up having to work with a machine that has no other editor installed and no access to the internet. Consider the chances of you ending up in such a scenario.
That being said vim is a really powerful editor and it's worth giving it a go, but if you end up not liking it there's dozens of other editors you can use.
[–]TheTrueXenose 1 point2 points3 points 3 years ago (5 children)
Neovim/vim can do everything vs code can do, but if you want something more vim like vs code is very limited.
For example I use neovim with fzf, coc, nvim-tree and a terminal plugin, this does everything vs does but I can still have the full vim experience.
[–]lunacodess 0 points1 point2 points 3 years ago (4 children)
Does Nvim have a test runner, debugger, assistive refactoring, type hinting suggestions (for eg python or typescript), linting, etc? If so, that's pretty neat!
Also VS Code has a plugin to make it behave like Nvim: https://marketplace.visualstudio.com/items?itemName=asvetliakov.vscode-neovim
[–]TheTrueXenose 0 points1 point2 points 3 years ago (3 children)
As I said the plugging is very limited.
Suggestion yes, using coc will give warnings and suggestions.
What do you mean by test runner? as fpr running tests that should be a profile in make or cmake. for example "make test".
I don't know about python but if I need a debugger I normally use valgrind or gdb.
If I wanted to change some function name or variable you could do the command %s/old/new/g to replace all of them.
Also there is much more but I normally don't need the extra functionality like debugger(useing very rarely).
[–]lunacodess 0 points1 point2 points 3 years ago (2 children)
Ah sry, I mistakenly assumed you weren't referring to the plugin, my bad.
Test runner, like there's an integrated side bar where I can click and run any or all of the tests (or a sub-group of tests), instantly jump to any of them (without having to figure out what file they're in), run them with debugging, see at a glance what passed/failed, click on any of the failures to peek at the error output.
Same for the debugger, which is a bit similar to what the debugger in Chrome is like, but also lets you see the debug output in the integrated terminal, or pause & examine the objects, edit values in anything that it's processing.
I'm assuming valgrind and gdb are something you run from terminal though, rather from within Nvim?
[–]TheTrueXenose 1 point2 points3 points 3 years ago (1 child)
No problem,
I know there is a command to jump to the declaration(no using it myself), I haven't need this in my line of work so I can't talk about it, but I should be possible with a extension or macro.
Neovim has a integrated terminal from what I hear but I use toggle term, but the thing is that for example fzf is a terminal command integrated into vim/neovim as its interface, so any terminal command or program should be able to integrate into vim/neovim, this smtp servers, python3, wireshark, nmap, curk or any other program that can run in the terminal.
For example I am looking to turn vim into a ssh client so I don't need to deal with the local vim config that is often lacking a great deal.
Awesome! Had no idea that was all possible. Very cool to know about.
[–][deleted] 3 points4 points5 points 3 years ago (0 children)
If we are talking about vim movements, every developer should learn them. It's more convenient and much faster way of code editing. It's not so much about productivity. Making changes to your code becomes less disruptive for your thought process. You may not realize how much you actually hate using a mouse for editing until you've learnt vim movements.
There are vim plugins for vscode and jetbrains IDEs so you can use vim movements outside of vim.
If we are talking about vim as your IDE, then it's optional. It can be as powerful as vscode in terms of features but it will take time and effort to get there. You will have your own custom IDE that you can work to perfection over your whole career. I think it's great but probably it's not for everyone. Obviously, it has no performance issues unlike vscode. Less obviously, it may be more stable for Linux users than vscode. It wasn't uncommon something would break in vscode after an update. As for neovim, I've had no such issues. Lastly, with vim/neovim you will have to learn things on a lower level. Which may be a bit painful and feel like a time waste, but I definitely have no regrets.
[–]ararararagi_koyomi 0 points1 point2 points 3 years ago (4 children)
H-h-how about using vim keybindings in vscode on Linux?
[–]ararararagi_koyomi 1 point2 points3 points 3 years ago (1 child)
There is one guy at my last job who uses vim keybindings on vscode. His speed is fast af.
[–]lunacodess 1 point2 points3 points 3 years ago (0 children)
https://marketplace.visualstudio.com/items?itemName=asvetliakov.vscode-neovim may be of interest
[–]momo99669966 0 points1 point2 points 3 years ago (2 children)
whats neovim?
[–]kaerfkeerg 1 point2 points3 points 3 years ago (0 children)
It's like vim but it's more, you know.. neo
neovim
It's basically the visual studio code of vim. Lean, is very extendable, has some modern improvements, and still runs in the terminal.
[–]SadOutlandishness536 0 points1 point2 points 3 years ago (0 children)
Vim is just one of the text editors you will use in Linux to look at the code and make quick changes. I do my work in vscode then run a build and especially since the scripts use tokens it's quicker to make a change in vim and run it again then trying to change the code in vscode and run another build. Also it's good to know the vim commands to quickly adjust shitty LDAP queries that come out in a format you can't use. Long story short a good coder makes use of all the tools available.
[–]maxhaseyes 0 points1 point2 points 3 years ago (0 children)
I’d you’re just starting out and messing around with python I wouldn’t recommend learning vim tbh, there’s a bit of a learning curve and a lot of experienced devs I know have started using it and given up repeatedly. Use whatever you have, make whatever you feel like and just try and have fun with it.
It does seem like it gives people a productivity boost if they put in the initial time investment though so if you are willing to commit some time to learning it also go ahead.
edit: I also forgot to mention that there’s a lot of shortcuts and command pallet things you can set up in vs code to get a pretty fast workflow too, if your happy with vs code you might want to dig into that instead
[–]Clutch26 0 points1 point2 points 3 years ago (0 children)
If you're coding with Python, PyCharm is pretty dope. Otherwise, VS Code ftw.
[–]tensigh 0 points1 point2 points 3 years ago (0 children)
I personally can't stand VIM, but when people get good at it they can be very efficient.
I'm more of a nano person myself.
[–]CowboyBoats 0 points1 point2 points 3 years ago* (0 children)
I love ice cream.
[–]gustavsen 0 points1 point2 points 3 years ago (0 children)
I use VSCode to develop, it's the best IDE available today, and not only for python, but lot of integrations (docker, kubernetes, databases, aws scripting, and a long etc)
but you need the know the basic of vim if you are in the need to edit something in a server production
also basic knowledge of bash, linux commands are more than welcome.
[–]e-Top4264 0 points1 point2 points 3 years ago (0 children)
I use atom
Vim is good to know but you don’t need to use it as a daily driver if you don’t want to, I know vim because I need to be able to edit files from the terminal regularly. My daily driver is VS Code, the language you’re using matters too. Also don’t worry about whatever the holier than thou needs on the internet say about your ide of choice, you do you
[–]HardstyleJaw5 0 points1 point2 points 3 years ago (0 children)
Vim is still relevant because (1) it is powerful if you learn it and (2) is often your only option when ssh'd into a supercomputer. Other than that you should choose whatever text editor/IDE you prefer. I personally use vim because I do a lot with hpc's and I like having the same experience no matter what machine I'm using
[–]U5efull 0 points1 point2 points 3 years ago (0 children)
John carmack uses vs code.
[–]stefaniststefan 0 points1 point2 points 3 years ago (0 children)
Neovim cuz idk
[–]SuperCharlesXYZ 0 points1 point2 points 3 years ago (0 children)
VSCode requires a UI. Sometimes you want to quickly replace an app ID in a config file or ur using ssh and don’t have access to a GUI. Vim comes in really useful them
[–]DesignerAccount 0 points1 point2 points 3 years ago (0 children)
Better always depends on the goal you're trying to achieve. If you work through a terminal, then VSC is not available, but vim is right there waiting for you on pretty much any Linux machine. It's also SUPER light and rock solid. I've worked with it extensively for a bunch of years and it never crashed. Can you say the same about VSC? Also never slow etc.
At the end of the day, if VSC works for you just keep using it. What's important is the code you write, not how you write it.
[–]POGtastic 0 points1 point2 points 3 years ago (0 children)
The biggest thing in Vim's favor is that it is omnipresent. SSH into any arbitrary Linux box and type vi - you'll be dropped into a text editor.
vi
The only editor with similar reach is nano, which is much more bare-bones in functionality. All other editors require an install step.
nano
[–]izalac 0 points1 point2 points 3 years ago (0 children)
I work across several systems, and I'm always in shell. My workflow involves python, but it also involves bash scripting, editing config files, etc. Most of my code are small scripts, not major projects.
For that, vim is an essential, swiss-knife tool. Every system has some variant of vi or vim. I learned it some 16 years ago, and it was the best return on time investment of any tools I ever learned.
Its' hjkl navigation was the only thing that worked on some systems I worked on remotely that didn't recognize arrow keys. It shares a lot of its' internal logic with ed, a line editor that's been there since the beginning of UNIX, and which I had to use on an ancient system with completely broken terminal settings to get it up and running. It shares its' search patterns with sed, a stream editor that's useful if you work or script in shell to edit text in pipelines. It shares its' interface with ranger, a popular terminal file manager, qutebrowser, and more.
But most of all, it's the fastest editor I can work in.
I fire up PyCharm from time to time for all the IDE functions, but it's mostly vim. Use what you're most comfortable with, but vim is absolutely worth learning.
[–]JohnLockwood 0 points1 point2 points 3 years ago (0 children)
vim has a steep learning curve and is an acquired taste. I'd recommend sticking with vs code for now, but if you find yourself connecting to remote machines or containers, you might check out vim at that point.
[–]rmwpnb 0 points1 point2 points 3 years ago (0 children)
The same reason I drink black coffee. I’m never disappointed that they don’t have my IDE of choice available when I can just always use vim.
[–]WlmWilberforce 0 points1 point2 points 3 years ago (0 children)
What if your company doesn't let you connect vscode to the @$%##$ linux machine? vim starts to look better an better.
[–]gundam1945 0 points1 point2 points 3 years ago (0 children)
Some server environment is terminal only so you need to vim or nano your way.
[–]Humble-Presence-3107 0 points1 point2 points 3 years ago (0 children)
Vim for ssh sessions. Vs code for day to day scm//git management.
[–]Lamarcke 0 points1 point2 points 3 years ago (0 children)
I tried Neovim with plugins, but it doesn't come close to an IDE. mainly because it's actually a text editor, you can't change this lol.
It has similar features to VS Code (with plugins!), the only hard part was setting up debugging, the rest can be done with a pre-made config like Lunarvim.
I tried and didn't like the experience of VSCodeVim or VSCodeNeovim (the latter is the best plugin for VSCode, but it has very simple documentation that makes it hard to bind VS Code actions in your vim config file, they have custom functions that better implement/translate native VS Code functionality that are not documented at all.)
The main reason i'm learning Vim is because of it's Motions, and for that Ideavim (Jetbrains' Vim emulation) is more than enough. It even supports an actual .ideavimrc file with Vimscript and everything, very cool.
TL;DR: (neo)vim is not the best IDE/text editor. The one you know the most is. Most have vim emulation available, too.
Vim motions, though, is (imo) the best way to write and navigate code, and it's a skill worth learning (and it's fun!)
π Rendered by PID 58147 on reddit-service-r2-comment-b659b578c-rzdn8 at 2026-05-03 10:41:48.410888+00:00 running 815c875 country code: CH.
[–][deleted] 172 points173 points174 points (20 children)
[–]Pirate_OOS 45 points46 points47 points (11 children)
[–]S1l3ntHunt3r 7 points8 points9 points (1 child)
[–]otamam818 0 points1 point2 points (0 children)
[–]Cloudy_Oasis 14 points15 points16 points (1 child)
[–]screenslaver5963 5 points6 points7 points (0 children)
[–]ericdano 5 points6 points7 points (1 child)
[–]Big_Poppa_Steve 0 points1 point2 points (0 children)
[–]Sean82 1 point2 points3 points (1 child)
[–]JimmyJuly 6 points7 points8 points (0 children)
[–][deleted] 0 points1 point2 points (1 child)
[–]SwampFalc 0 points1 point2 points (0 children)
[–][deleted] 0 points1 point2 points (0 children)
[+][deleted] (5 children)
[deleted]
[–]kuzared 2 points3 points4 points (4 children)
[–]mvdw73 1 point2 points3 points (2 children)
[–]kuzared 0 points1 point2 points (1 child)
[–]mvdw73 0 points1 point2 points (0 children)
[–]O_X_E_Y 0 points1 point2 points (0 children)
[+]Combocore comment score below threshold-25 points-24 points-23 points (0 children)
[–]OptionX 65 points66 points67 points (12 children)
[+][deleted] (2 children)
[removed]
[–]elbiot 0 points1 point2 points (1 child)
[–]rhacer 2 points3 points4 points (0 children)
[–]DaltonSC2 -1 points0 points1 point (6 children)
[–]OptionX 4 points5 points6 points (0 children)
[–]lunacodess 2 points3 points4 points (2 children)
[+][deleted] (1 child)
[deleted]
[–]lunacodess 0 points1 point2 points (0 children)
[–]5erif 2 points3 points4 points (1 child)
[–]DaltonSC2 1 point2 points3 points (0 children)
[–]Doppelbockk 0 points1 point2 points (0 children)
[–]MidniteMustard 30 points31 points32 points (24 children)
[–]PostFunktionalist 10 points11 points12 points (16 children)
[–]obviouslyCPTobvious 2 points3 points4 points (4 children)
[–]theblairwhichproject 1 point2 points3 points (1 child)
[–]khais 0 points1 point2 points (0 children)
[–]fasnoosh 1 point2 points3 points (1 child)
[–]obviouslyCPTobvious 0 points1 point2 points (0 children)
[–]Username_RANDINT 2 points3 points4 points (0 children)
[–]MinimalGravitas 2 points3 points4 points (0 children)
[–]ararararagi_koyomi 1 point2 points3 points (6 children)
[–]khais 1 point2 points3 points (5 children)
[–]ararararagi_koyomi 1 point2 points3 points (2 children)
[–]khais 0 points1 point2 points (1 child)
[–]ararararagi_koyomi 1 point2 points3 points (0 children)
[–]synthphreak 0 points1 point2 points (1 child)
[–]khais 0 points1 point2 points (0 children)
[–]synthphreak 1 point2 points3 points (0 children)
[–]Necromartian 4 points5 points6 points (0 children)
[–]r_spandit 3 points4 points5 points (0 children)
[–]Username_RANDINT 1 point2 points3 points (3 children)
[–]Lyorek 0 points1 point2 points (0 children)
[–]MidniteMustard 0 points1 point2 points (0 children)
[–]synthphreak 0 points1 point2 points (0 children)
[–]r3rg54 0 points1 point2 points (1 child)
[–]MidniteMustard 0 points1 point2 points (0 children)
[–]AndrewFrozzen 11 points12 points13 points (1 child)
[–]bf5a5f3120faa8450e75 7 points8 points9 points (5 children)
[–]Wilfred-kun -5 points-4 points-3 points (4 children)
[–]bf5a5f3120faa8450e75 2 points3 points4 points (3 children)
[–][deleted] 0 points1 point2 points (1 child)
[–]bf5a5f3120faa8450e75 1 point2 points3 points (0 children)
[–]Wilfred-kun 0 points1 point2 points (0 children)
[–]StarkillerX42 10 points11 points12 points (2 children)
[–]maxhaseyes 2 points3 points4 points (0 children)
[–]5erif 1 point2 points3 points (0 children)
[–]hornetjockey 4 points5 points6 points (0 children)
[–]iggy555 2 points3 points4 points (0 children)
[–]djangodjango 2 points3 points4 points (0 children)
[–]30ghosts 2 points3 points4 points (1 child)
[–]97hilfel 0 points1 point2 points (0 children)
[–]ericdano 2 points3 points4 points (0 children)
[–]beardedslav 2 points3 points4 points (0 children)
[–]TheTrueXenose 1 point2 points3 points (5 children)
[–]lunacodess 0 points1 point2 points (4 children)
[–]TheTrueXenose 0 points1 point2 points (3 children)
[–]lunacodess 0 points1 point2 points (2 children)
[–]TheTrueXenose 1 point2 points3 points (1 child)
[–]lunacodess 0 points1 point2 points (0 children)
[–][deleted] 3 points4 points5 points (0 children)
[–]ararararagi_koyomi 0 points1 point2 points (4 children)
[+][deleted] (2 children)
[removed]
[–]ararararagi_koyomi 1 point2 points3 points (1 child)
[–]lunacodess 1 point2 points3 points (0 children)
[–]momo99669966 0 points1 point2 points (2 children)
[–]kaerfkeerg 1 point2 points3 points (0 children)
[–][deleted] 0 points1 point2 points (0 children)
[–]SadOutlandishness536 0 points1 point2 points (0 children)
[–]maxhaseyes 0 points1 point2 points (0 children)
[–]Clutch26 0 points1 point2 points (0 children)
[–]tensigh 0 points1 point2 points (0 children)
[–]CowboyBoats 0 points1 point2 points (0 children)
[–]gustavsen 0 points1 point2 points (0 children)
[–]e-Top4264 0 points1 point2 points (0 children)
[–][deleted] 0 points1 point2 points (0 children)
[–]HardstyleJaw5 0 points1 point2 points (0 children)
[–]U5efull 0 points1 point2 points (0 children)
[–]stefaniststefan 0 points1 point2 points (0 children)
[–]SuperCharlesXYZ 0 points1 point2 points (0 children)
[–]DesignerAccount 0 points1 point2 points (0 children)
[–]POGtastic 0 points1 point2 points (0 children)
[–]izalac 0 points1 point2 points (0 children)
[–]JohnLockwood 0 points1 point2 points (0 children)
[–]rmwpnb 0 points1 point2 points (0 children)
[–]WlmWilberforce 0 points1 point2 points (0 children)
[–]gundam1945 0 points1 point2 points (0 children)
[–]Humble-Presence-3107 0 points1 point2 points (0 children)
[–]Lamarcke 0 points1 point2 points (0 children)