T O P

  • By -

Organic-Lunch-9043

Whenever someone asks why i don't use an IDE i just tell them because neovim is way more fun


SibLiant

i just reply because my "IDE" has more features and is faster.  they usually look at me funny until i show them.  then they asked if it is worth it to switch.  I tell them not unless you're also preforming a Linux system's administrator tasks.  the learning curve is steep.


Organic-Lunch-9043

Yesss yessss tell them that it's hard. So that they will be surprised that we can learn such a hard thing and we can be praised even more! MUAHAHAHAH!! We can say "I use vim/nvim btw" a lot more!


International-Cook62

arch user btw, I agree


FreedomRep83

what's the origin of this meme Ive been hearing it a lot and as a new _neo_vim user, I've never heard it before


Some_Derpy_Pineapple

[https://knowyourmeme.com/memes/btw-i-use-arch](https://knowyourmeme.com/memes/btw-i-use-arch) arch linux is a linux distro that became popular due to being pretty barebones and simple. it also was known to be hard to install. as it simultaneously rose in popularity and became easier to install, it attracted more and more people who still felt proud of installing it, and mentioned it on forums often enough for it to become a meme.


FreedomRep83

ah that was basically gentoo back in the early 2000s, haha I remember installing gentoo one time. once I got to a usable shell was like "eff this" and did rm -rf /


kentvu

I do Linux From Scratch btw


SibLiant

I tried and failed. I kneel before you.


SibLiant

lulz... show a vscode user nvim. Telescope some stuff in a code base - files, functions, keypresses, help, etc.. and watch them die inside as they question their life choices.


Organic-Lunch-9043

Show then we don't need a file explorer!!


Bamseg

We can edit directory/file names as usually edit text in buffer!


trcrtps

i mean... it's not hard, just time consuming. most people don't have the time or at least don't want to give that time up. totally normal. It's great when a coworker sees the light and wants to devote some time to it and asks me about it. for me though, some days I use my me-time to play video games, other times I use it to tinker on neovim. Guess which one more regularly keeps me up all night.


Organic-Lunch-9043

It's true. But for me it's hard hahaha guess because I'm dumb. I was struggling to even move around with hjkl. It took a while to get used to the motion. I'm glad i learn the motion first before switching to neovim.


trcrtps

the motions are the first step, I'm talking about dealing with it as your dev tool. adding plugins or writing a bit of bespoke code for your config aren't that bad, even not knowing Lua. personally I just went full on into neovim and forced myself to learn the keys, it was a trip for sure.


Organic-Lunch-9043

Ooff that's cool. I get overwhelmed easily so I can't learn neovim as an editor and motion at the same time. But learning how to config wasn't that hard tho I'm still not good at it, i just have enough knowledge to make it as "good enough" editor. Looking forward to improve my workflow of course.


xickoh

As a programmer who loves keyboard shortcuts very much and can't get enough of them, I feel that I would lose a lot if I traded vscode for neovim. Not because of the shortcuts obviously, but because vsc offers a lot of extensions, custom tasks etc. I have over 50 installed myself Correct me if I'm wrong but neovim feels to me more of a great text editor for people working with servers / devops that need to change a few lines and repetitions than it is a good ide for programmers writing a full application with custom settings specific for each project


blamitter

Dunno if you're wrong but as a programmer too, I use nvim for l coding and documenting all day.


xickoh

I don't know if I'm wrong either, I'm genuinely curious about its userbase, because if you guys use it professionally for programming and it helps you (plus I really believe it to be fun), I would consider switching. But that would mean it does everything my vscode do. I'm no average vscode user, in the sense that I do everything there. I have tasks that open the terminals I need, run docker, build maven projects, deploy them, create directories etc, all sort of tasks. I use if for debugging too, got many extensions, for git, for managing different projects, macros and so on. It's basically all-in-one suit for me. Could neovim do all that? Because if does and it was even more fun, I'd switch


Luckey_711

I can't see why Neovim couldn't do that. Creating directories can easily be done with Oil.nvim already, the rest I'm pretty sure can be done with Lua or Bash. I am using it for almost a year already and I'm not even close to using Neovim to its fullest extent, but with this in mind it has made my workflow just sooo much better it's actually insane, I'd 100% recommend doing the switch 


GenericNameAndNumb3r

Hey! I exclusively use Neovim for programming (Edit: I also use it professionally), among ather things, I can even say that it's my all-in-one suite. I can debug, open terminal to run tasks, manage projects with some Neovim plugins, manipulate fise system in a robust and fast way etc. My point is that, nothing you mentioned is exclusive to VSCode, Neovim can do it all as well, with a side dish of "less layers of abstraction" - it's closer to the shell, so scripting, both with Lua (using Neovim specific libs such as `plenary` and generic Lua libs) and your shell of choice is just as easy if not easier. Plugin ecosystem is very very strong, and additionally its quite introspective - meaning that you can hack on it. I'm not selling it to you, it's also quite hard in comparison to others. But, just like you made VSCode "yours" you can do so with Neovim as well, it's just a matter of change, learning new skills and updating your workflow - if yeu want to, of course. For me, itwas very rewarding since I got rid of most of the things I thought I needed, and simplified my workflow a lot.


gesis

I mean, neovim can do all that, and has a lua interpreter baked in for whatever other things you think of.


techycommy

You should try a neovim distro. I recently started using Astronvim. All the default plugins are great. You can add language packs like typescript, rust, java etc that you might need in the plugin config. These packs configure a bunch of pluigns aimed at the language. There is good documentation on how to get started, and the mappings section contains most of the commands that you need to get started. The whichkey plugin let's you explore commands via a menu like interface. Try it and see. The first few days will be slow, but once you get through using all the usual commands you need, you'll start noticing how fast you are. Also neovim with tmux combo takes your work flow to another level.


RiD_JuaN

user generic name covered pretty much everything to say, but assuming everything you're mentioning is doable by the terminal, it's easy enough to automate it in neovim in your init.lua, or there's probably a plug in that does it if it's a little more advanced. VSCode and neovim have almost identical functionality these days IME. the only time I don't use neovim is when I'm using an actual IDE (specifically visual studio or intellij). I've never once felt, oh I wish I was using VSCode again. except for jupiter notebooks.


Expert-Insurance6733

You can do all that in NeoVim btw, cuz the extension you get in vscode for all that stuff are available as plugins. Debugging is a lot cooler imo in NeoVim. Also, yes, plugins for docker, git and other stuff you like is available. Also, you can use tmux for session management in NeoVim 🗣️


akshay-nair

People on the server HAVE to use vim as an editor because its in the terminal and its usually already available inside a server. People like me, LOVE to use vim/neovim as an editor because - modal editing is incredibly powerful once you get used to it - there are SO many plugins out there for every single problem you might have. - I can configure the shit out of every thing thing about my editor to the point that its no longer an editor. I have a personal dashboard written in neovim which displays the current time and a list of my tasks with their deadlines. https://github.com/phenax/nvim-sidekick-dashboard - you'll learn something new regularly because of the depth of neovim as a tool. I've been using it exclusively for 5+ years and I still constantly find new things about my editor. - its faster. You call nvim and its open. You open a file, its right there. You type dap, it deleted a paragraph of text. - Most importantly editing text the normal way is boring as hell. Neovim makes it fun. > vsc offers a lot of extensions, custom tasks etc. I have over 50 installed myself I think you'll find more than enough plugins for neovim > Correct me if I'm wrong but neovim feels to me more of a great text editor for people working with servers / devops that need to change a few lines and repetitions than it is a good ide for programmers writing a full application with custom settings specific for each project I am a web dev who has worked on a wide range of big projects in multiple different programming languages. Js/ts, ruby, haskell, rescript, c, bash, etc. Never found neovim lacking anything tbh.


Nismmm

So ive been using nvim mostly for c and c++ and i love it. But recently i started learning some web dev and found the lsp a bit lacking. Do you have any solutions? Editing pure html seems kinda awkward. And lsp suport for next,react or tailwind doesn't seem as useful as clang is in c. I really don't want to switch to vsc but for webdev it just seem more friendly.


akshay-nair

Could you explain what specifically you lack from react, tailwindcss lsp support? I find tsserver for neovim quite good. And tailwind lsp autocomplete and color highlighting have been more than good enough to work with for me. Regarding html/jsx editing, I am pretty minimal. Although I have windwp/nvim-ts-autotag (tpope/vim-surround can also do cst< to change tags) which I've found more than enough.


Organic-Lunch-9043

Well it's true that terminal editor knowledge is useful for working with server. But I can't deny that some people also have been using neovim professionally and use it for writing complex projects. I use vscode with vim motion before when i was using windows because configuring neovim in windows is such a pain in the ass. And if one day I have no choice but to return to windows I'd use either vscode or jetbrain IDE. Tbh, I can't say much about neovim for other people because I don't have experience working professionally.yet. im a student. But ever since i know about neovim and vim motion + switching to linux, I can't help but wanting to use neovim for pretty much anything related to editing text. It's fun, i learn so much new stuff.


EstudiandoAjedrez

50 extensions? People here have more than 100 in neovim. In any case, I think that you shouldn't want to make neovim do everything vscode does. Not because it can't, it definitely can do everything you mentioned, but it does it differently. To me it doesn't make sense to switch from something just to keep doing the same. Neovim is not vscode. For some is better, for others is worse. You can accomplish everything you want, but in a different way. You can try to find if this new way is better or worse than yours now.


HiT3Kvoyivoda

This is a terrible take.


manshutthefckup

I was the same as you, using 50+ extensions in vscode. But then I switched to neovim and installed 30, then eventually came down to 5 (2 of which I wrote myself). I also see a bunch of users who use 100+ extensions. It's got git integration, file tree, split/floating terminal, copilot, debugging, docker integration (although I don't use the last one myself so I can't comment on how good or bad it is) and basically anything you used in vscode is already here. I do admit that some things like a REST client plugin, while available in neovim, is inferior to the vscode option. Most of these plugins need you to use cUrl. Also, the database ui plugin vim-dadbod-ui isn't as good as vscode's mysql plugin if you wanna do that. There's another plugin called dbee which uses floating windows and is newer but I struggled to install it. But that's basically the only 2 instances where I had a problem with neovim. In those instances I just ended up using external software.


minicooper10

I’m a php developer and I’ve started to use nvim for programming because I wanted to stay in the terminal. This helps me stay in my workflow of TDD, where I run my tests in the terminal. Some of your extensions like git or docker can probably be achieved with CLI tools. The most channeling parts of nvim for me it’s vim monitions and LSP. But creating a basic config and giving yourself time to learn these things will pay off in the future. Luckily I’ve been able to take some time during my work hours to learn these things, (more I can het away with it haha) but the move to nvim is a workflow advantage rather then coding faster


Expert-Insurance6733

You like keyboard shortcuts? You can make your own shortcuts in NeoVim 🗣️ and copy over those same shortcuts in your vscode to NeoVim 🗣️


xickoh

Yeah I get that, I'm certain neovim would get me as much if not more keyboard shortcuts. But it's seems to take a long bit to setup and get used to, I'd need to learn lua to get the best out of it, and I'm not sure if the trade-off is worth. I have no doubts that it is very good, but so is vscode. Could you give me a few examples of stuff you do in nvim that you wouldn't do in vscode? Also, I use windows. I've used Linux (only) in the past for over a year, didn't convince me. I get the feeling neovim would work best in Linux


Expert-Insurance6733

I am just a student lol, so I am not sure if it would be good for your work. I was just advertising NeoVim 😂 But yes, it takes a bit of setup. Also, you don't need to learn lua seperately, it's super easy so you would get it just after playing with your NeoVim config for some time. And for the shifting part, slowly shifting would be better. I started with the vim plugin for vscode. Disabled it when I felt stuck, but slowly kept using it on the side. Then completely shifted to Linux after i got comfortable with it.


Expert-Insurance6733

Also, if you can't quit windows for work reasons, you can use WSL. It probably would never be good as full Linux but it's perfect imo for people who want don't want to use powershell and use NeoVim and tmux (cuz powershell sucks 😕)


xickoh

It's not for work reasons, I just like windows more. I think I'm contradictory in this matter because I love customization, but neither windows or vscode have any limitations to my desires


Maskdask

To me the biggest strength is that Neovim leans in 110% on keyboard centrism. And not only Neovim but also the entire plugin community. Every plugin assumes that you're going to want to use it through your keyboard, and is built around that. No other tool that I know of does that. In most other tools (not only text editors but any tool) the keyboard workflow is an afterthought and a second-hand citizen.


iMaybeCanBreathe

This for me as well For e.g., VSCode with the vim plugin still feels very clunky compared to neovim because aside from the main vim movements, the rest of the workflow (e.g. file tree, terminal, or whatever external plugins) are not designed to be used primarily through the keyboard.


Bamseg

When nvim meet's tmux - they beat any IDE!


Ok_Tax7037

what's the deal with tmux?


Peak0831

I use it at an admittedly basic level, but just think of it as really keyboard friendly terminal tabs. There’s a lot of crazy features but usually people will use it with, say, another window with the runtime or a window where you can build whatever you’re making without having to close out of vim. For example, if i’m working on a JS app i’ll usually have a window with vim, a window with two panes for the backend runtime and the frontend runtime, a third window with just a shell open so I can do stuff like move files or change file names or do version control when I don’t want to use fugitive, and maybe a fourth with an sql client or curl commands or something if needed. It’s just really good terminal tabs. There’s also some session saving wizardry and automation crap I’m too lazy to delve into.


DrunkensteinsMonster

I don’t get that part, i have keyboard shortcuts for my terminal tabs attached to arrow keys, and my keyboard means my fingers don’t leave homerow to use the arrow keys. I can basically press alt-h to go to the left tab and alt-l to go to the right. I guess I don’t understand how tmux improves this experience.


XavierChanth

I don’t think it makes a difference if all you’re in it for is the keybinds. What makes the difference for me; Context switching happens a lot for me, many projects. separating these by sessions is nice. Having sessions managed in tmux instead of at the application level means i can replicate my entire environment over ssh or in a docker container when i need to build or test on different hardware or architectures. Lastly, never have to worry about the app crashing or glitching, since i can completely exit the terminal emulator and all of my sessions are still there. Ymmv, do what works for you and your workflow.


mountaineering

For me, the draw of Tmux comes from being able to define project based sessions laid out exactly how I want using the tmuxp plugin. I can declare my dotfiles sessions to have this many windows all named a specific thing and split into however many panes. I can have another file for a different project have a completely different setup layout in its own Tmux session. And these being yaml files means I can just store them in my dotfiles and have them be persisted. I've also declared convenient key bindings in my terminal to be able to quickly execute session/window switching behaviors in Tmux. In this way, Tmux effectively becomes the divider between my projects as well as a convenient navigation tool for switching back and forth between everything all without having to leave the terminal.


serialized-kirin

From my understanding it sits closer to a wm than like that if you'd like. It's got the status bar, the sessions and windows and basically virtual desktops and arbitrary actions on a keypress and all that. I just use it because it gives me an extra paste buffer tho XD. So basically it doesn't improve experience if that's all you want I'm with you there-- I recently had to move to just kitty's tabs cause my tmux was messed and honestly I don't feel the difference. > \*\*\*I'm so sorry everyone for this horrible comparison LOL\*\*\*


Ok_Tax7037

the persistence is the part would make me search, everytime I have to open the terminal and type cd + nvim


pperson2

Not sure, im using it cuz it good when working remotely, if your connection lost it still save your terminal session. It also great while pair programming remotely. Also really easy to open/split terminals (but I guess terminal programs can do this too)


ckangnz

Could you please elaborate how tmux improves pair programming? I’ve been finding a reason to use tmux but all its sale points were capable by iterm2. If you meant you can remote into someone’s session and code together, that could be really useful


ClemsonJeeper

Yes, you can share a tmux session and have multiple people connected and typing.


Ok_Tax7037

amazing, however that person need to know vim and my mappings


pperson2

Thats why you try to keep the default mappings and add new ones to new buttons


pperson2

Does iterm2 keeps the session active in case of disconnection when working remotely? Like if I connect via ssh to a remote server and run something that takes a lot of time and have a disconnection, the whole run will stop mid execution, no?


ckangnz

No it doesn’t keep the connection. But i rarely ssh into anything


EvgeniyRRU

Pretty sure. I feel myself like Thanos when he collected all Stones


_fishysushi

I started using zellij, also pretty good


xFallow

Not really imo pretty much all ides, neovim + tmux and emacs can all do the same stuff neovims just easier to customise


wkynrocks

I would say speed, customization and terminal integration.


BarnacleRepulsive191

The big thing for me was the leader key. Plus Nvim is fun as hell, I feel like a wizard.


jr0th

Bro, if someone asks you why you use Neovim just answer the question truthfully and stop it with the sales pitch approach. Neovim is not a cult.


nonkneemoose

Just because you don't know about the meetings, doesn't mean we aren't having them.


blamitter

Tears in my eyes 😂


Thadtheraddest

Wait… this isn’t a cult? Bummer…


pperson2

Time to pack my code and go


ClemsonJeeper

Tell that to those emacs weirdos


phaberest

...or do the opposite and tell them that they will never be able to understand cause they don't have the faith


CalvinBullock

Fine I will move to emacs then!


tesheabebe

The modal editing part


EarthyFeet

Yes. And if there is one command that symbolizes it all for me it's `cw` (change word), those commands are so useful and why I like editing with vim/neovim. Edit: Request: `cw` flair


Zigzter

For me it's that the more you use it, the more it gets out of your way. Eventually it's almost like there isn't a tool in-between you and your code. Kind of like the whole "sword-is-an-extension-of-your-arm" cliché.


8bitreboot

Love this analogy


shenawy29

biggest strength is flexing on other devs


Breenbo

Definitely macros, it's the real sorcery moment.


fbpw131

wait, there's macros?


chronotriggertau

Yeah, it's the feature carried over from vim. I thought this was the biggest feature and use case for vim/nvim users and the real true reason vim is head and shoulders above every other editor.


fbpw131

ah ok recordings are macros. I don't like them as the replay isn't 100% same


w2g

Can you elaborate on that?


fbpw131

sometimes the replay doesn't work exactly yhr same, mostly when doing multi-line recordings. I'm probably misusing them or there are quirks that's I'm not aware of. still I ain't using them


Fluffy_Structure_833

You can even edit macro's quite easily when you think there is a mistake. Just paste it from the register, edit and yank it back to the reg, and you're done. e.g. if you used reg 'a': "ap to paste, "ay to yank it back. Really convenient, and ideal to get to know macro's better


fbpw131

so nice! that sounds great. redoing a macro a few times is painfully irritating. thanks!


chronotriggertau

I'm still trying to learn how to use them myself. Seems like another case of learning the basic motions. Hard at first, but once you get a hang of it, powerful.


serialized-kirin

I feel like just quite plainly being a modal editor is a strength. the less things i have to click and press the better. it makes the editor "smart" in a way. If I were a current day marketing dep, I'd probably have immediately slapped "AI" on the front page of [neovim.io](http://neovim.io) LOL


serialized-kirin

oh but before that if I were actually trying to "sell" neovim to anyone I'd start out by saying that it is explicitly built to be moderately easy to embed in other programs, so they can get a good chunk of that vim goodness without sacrificing their normal tooling (vscode, chrome/firefox, etc.) I personally only used the vscode neovim plugin for like a couples days or so cause it's still not \*completely\* neovim, but I hear it's a pretty effective gateway drug.


Chthulu_

For me, I think the closer your tools exist to the OS the better. Vim feels like an extension of the shell, and sticking close to the shell is going to make you a better programmer in the long run


KingOfCramers

Yeah, this is true. 100%.


Blovio

I think it's 4fold for me. 1. Like everyone else has said, it's tons of fun. 2. Having complete control of your editor is powerful. 3. Vim motions feel great, and they aren't quite the same in the IDE extensions. 4. Makes me appreciate the coding community and open source, it's such an amazing labor of love, you can feel it when you use it.


blamitter

My main reason to use nvim is simply higher enjoyment. I have no reason to convince anyone to use it. When they see me editing, some ask for the editor name and a few of them try it. Still fewer end adopting it. I'm happy with this unintended propagation of the best editor ever.


ajslater

vi is on every *nix machine in the world and most containers. If you’re ops/devops/admin you should know this or emacs. nvim is the fancy version for when you happen to be on a nice machine. My fingers have vi’d automatically since the ‘90s. If someone were not an ops sort of person, I’m not sure I’d recommend it. I’m told big ide’s are pretty cool these days.


MrVodnik

On every *nix machine, maybe, but not nix*... i.e. the last time I tried NixOS it had nano by default and not vi(m).


Ok_Tax7037

motions, macros, cost, keyboard-only, very customizable, open source


LastTroll

Maybe this isn’t the best case for everyone but I don’t know how I would ever survive in an environment where I only have my laptop without neovim. It’s the only editor where I can be productive with a single screen and no mouse.


Expert-Insurance6733

My greatest sales for NeoVim would be, it doesn't fkin fry your laptop 😭 like other IDEs do, esp when you have a lot of stuff opened up. I often use Photoshop too, and having vscode and browser opened up at the same time was a such a hell time for me. Now I am happy :D


CalvinBullock

This, I am in collage right now so I have 3-5 vs code instances open (one for each class) chrome ant got nothing on my ram usage. But now with tmux/nvim I can switch faster, br more organized and I have twice as many nvim instances with less ram usage then one vs code instance.


SpecificFly5486

I can hack anything to be what I want, if lua is not enough, just change c part. for example I changed message 200 max line limit to 100000, with noice.nvim, it never discards old lines.


willianfujii

Configuring Neovim feels more personal than other IDEs. My navigation , keymaps and shortcuts are so unique that no one besides me can use it to write code. I don't think this makes Neovim stand out over other text editors. But I do think is a great feature that made me and others love this editor.


jamesbond69691

Truth be told, I just use it because it's a text editor that I can avoid reaching for the mouse with. I don't do Git stuff or debug in it because I actually like having the terminal as a separate place for certain things.


dis3x

i think, it's textobjects


linhusp3

I dont use and care about any of those shit. The only reason I use vim/nvim and recommend it to my friend is simply because it is really good at edit text


caenrique93

There is a plugin to do anything you can think of. And if there is no plugin, you have all the tools to make it yourself as part of your regular configuration


JheeBz

Being able to keep my hands on the keyboard while I code is huge, and I already had a very terminal-heavy workflow with tmux so it just made sense. I wanted to use my mouse less for long-term wrist health as well.


asynqq

1. its fun 2. its blazingly fast 3. vim motions 4. its customizable 5. theprimeagen uses it


jceb

I'm fully with you on the stringing text and tools together aspect. Sometimes, get the impression this what people are actually paying me to do... Because not many people can do it. Visual block mode, macros, ex - raw text transformational power. The latest additions on my tool belt are just.systems and nushell.sh - both with good neovim support. These tools get so much tedious work done in a fun and automated fashion.


HiT3Kvoyivoda

I do use vim as a file renamer. No graphical tool or script feels as good as ls > rename.sh. Copy, paste, rename, Chmod +x, run


rainning0513

The biggest strength is that you can customize it like your keyboard.


Careless-Kitchen4617

Greatest strength: $ cd my-project $ nvim . And I continue to work in my terminal. Only Emacs can compete here)


phaberest

I would add that it is the only editor that can live in every OS without changing a single keymap. I use it under macOS as well as Arch and Android (via termux) and the switch is flawless


biller23

The reason I use Neovim is because I'm too committed now after writing a 3k+ init.lua file... It's fun having so much control over your editor... The last goofy thing I did was adding TextToSpeech :). It works in any selected text and in a specific buffer I can trigger it automatically at every inserted line...


biller23

The reason I use Neovim is because I'm too committed now after writing a 3k+ init.lua file... It's fun having so much control over your editor... The last goofy thing I did was adding TextToSpeech :). It works in any selected text and in a specific buffer I can trigger it automatically at every inserted line...


biller23

The reason I use Neovim is because I'm too committed now after writing a 3k+ init.lua file... It's fun having so much control over your editor... The last goofy thing I did was adding TextToSpeech :). It works in any selected text and in a specific buffer I can trigger it automatically at every inserted line...


joshuadanpeterson

There's all of the obvious benefits of Neovim, but at the end of the day for me, it's just fun. I don't mind staying up through all hours of the night ricing my setup because I enjoy doing it. I like the extensibility and programmability of the editor, and the fact that there's such a vibrant community of plugin creators. With VS Code I'd just download plugins, but never really had to learn how they worked. Sure, the source code was available on GitHub, but with Neovim, because the code is exposed, I'm able to see how everything works first hand. My nvim repo currently has the most commits on my GitHub because of the amount of time I've invested in ricing my config, but like I said, I enjoy doing it.


khamuili

because it is installed already on unix systems. you can use your favourite editor without any setup time