24 ms·
I've been using vim for years, switched to neovim, and at this point I'm ready to throw in the towel and just use vscode for anything beyond simple text editing
by danjac 3y ago
I've been using vim for years, switched to neovim, and at this point I'm ready to throw in the towel and just use vscode for anything beyond simple text editing.
The amount of work needed to get a basic IDE up and running for your languages of choice, even for commonly used languages such as Python or Javascript, is far too much for someone who wants to get on with their day job or hobby coding and doesn't want to spend precious hours fixing obscure issues in Lua.
Furthermore, the community does not have a good culture of documentation and learning: too many plugins have very sparse docs, and other online resources such as the Neovim subreddit are hostile to newcomers with "RTFM" a common answer. The community is also fragmented, with too many ways to do the same thing in the name of some platonic ideal of personal freedom over practicality.
A simple question like "How do I set up Black with neovim to format my Python files on save?" will yield a dozen answers, each one with someone's favourite plugin. Setting up that plugin will require another plugin, and so on until you end up with a Jenga tower of dependencies that doesn't quite work the way you want, but is too fragile and time-consuming to tweak correctly.
In the meantime, I can just Ctrl+P and install what I need in vscode and be on my way in a few minutes.
I don't particularly like vscode. It's heavy and slow and janky, particularly on older laptops. I don't like being sucked back into the Microsoft ecosystem after spending years getting away from it. But ultimately, I want to just get on with my job, and my job is not Lua Developer or Neovim Plugin Expert.
- TonyStr 3y agoDid you try LazyVim or any other neovim distro? Seems like you're complaining about configuring neovim from scratch, which is that pain that neovim distros aim to remove
- danjac 3y agoYes I did. And they work fine, until you need to do that one thing (e.g. "Set up Black to format on save"). Now you are back in that world of pain of figuring out which plugin needs to be installed/configured, only now you are figuring out someone else's way of doing it.
- ipaddr 3y agoHave you asked chatgpt?
- JackJackJam 3y agoLazyVim gives you Mason to install Black. You could use :MasonInstall black and restart Nvim to ensure black is loaded. Or if you want to have it automatically available on other setups, black is a builtin formatter in Null-LS, so you would just have to add "black" to your builtin list for your Null-LS configuration. Format on save is already set up. I've not used LazyVim. It took me 30seconds to look at the docs to see what was available. Yes, getting to the point where you have Mason, NullLS and LspConfig and the glue-plugins to make them work well together takes more than 30-seconds to set up, but once it is adding a new LSP or formatter takes no time at all.
- shriek 3y agoI think you're going about the wrong way if you're reaching to plugin for every simple thing in vim. Granted, I will say that vim has steep learning curve, it kinda gives you the power to do your _own_ way which is probably why you're seeing people do their own way. Also, you sort-of have to shift your mindset to embrace unix/shell as your IDE. But definitely reach out to other tools if it's not your cup of tea. Like many others have said, if you're trying to force it into something it's not then you're going to have a miserable time. As for your e.g. it would be a simple autocommand to run black that's installed in your machine on buffer write event in your neo/vimscript. `autocmd BufWritePost *.py !black %`
- p-e-w 3y ago> The amount of work needed not only to get a basic IDE up and running for your languages of choice, even for commonly used languages such as Python or Javascript, is far too much for someone who wants to get on with their day job or hobby coding and doesn't want to spend precious hours fixing obscure issues in Lua. "This airplane is the choice of professional pilots! The first thing we advise you to do is turn the yoke upside down, it's much more ergonomic like that. Also, you probably want to rip out the altimeter and replace it with a custom one that has more features. And bring your own GPS unit and tape it to the windshield, because this plane doesn't have one by default. And of course, remember that unlike in your car, 'left' actually means right in this plane. This is the professional way. Ah yes, when you fly over Canada, you will see a blinking warning sign telling you that you're out of fuel. That's just a small glitch caused by metric/imperial confusion. It has been known for 23 years but we haven't quite gotten around to fixing it yet. Don't worry, this plane is still excellent for professional pilots. If you feel otherwise, you are probably not a real professional."
- divbzero 3y agoWas that expressly written to parody Vim? If so, this line is particularly spot on: > 'left' actually means right
- raverbashing 3y agoEmacs more likely since the bug is 23 yrs old and the gatekeeping But yeah I agree with the sentiment of parent OP
- p-e-w 3y ago> Was that expressly written to parody Vim? Yes. The advice to turn the yoke upside down is supposed to reference remapping Caps Lock to Escape, without which Vim destroys your pinky on a standard keyboard. But it's the choice of professionals, so what can we do?
- _7tgr 3y agoI'm playing into the joke here, but on most terminals, alt + <key> will actually be sent to the program as <esc> + key. You can use this to avoid pressing escape in Neovim.
- silasdavis 3y agoI can identify with much of this. After an unfortunate bout of Java development, I was flung into the arms of Intellij, steadily won over by the indexing and the reliability of the refactoring tools. The Vim plugin was good enough and defining some chords for editor shortcuts resulted in a kind of fucked up fat vim emacs mode that was quite productive. I, too, got fed up of spending inordinate amounts of debugging vimscript and incompatibilities to end up with something that was slower or buggier than an IDE in certain crucial ways or with highly debugging resistant niggles. But I'm also far from in love with Intellij these days. It's slow. Prone to index corruption with lots annoyances I can't easily fix myself. I may churn to vscode. But I'm definitely in the gravity well of Intellij. However perhaps this is worth a look. I have historically had a fairly high tolerance to plowing hours I'm never getting back into fiddling with tools. Just less than I used to. More nixos gnome, alacritty than gentoo, xmonad, urxvt...
- pkulak 3y agoDon’t even bother using anything but IntelliJ for JVM work. I use Neovim for everything, but not Java/Kotlin.
- Tmpod 3y agoSame. IntelliJ is just too damn good for JVM work, and specially for Kotlin. jdtls ans other Java langservers are decent, but unfortunately, kotlin_language_server is miles behind IntelliJ.
- freedomben 3y agoNot only that, but in my experience everyone else will be using IntelliJ, so the project is usually dependent on IntelliJ in some form. Sometimes subtlely, sometimes not so subtlely. It will usually build with gradle since it has to for CI/CD, but beyond that everytime I worked on a new project I had to fix all kinds of subtle problems that were the result of some config/state that IntelliJ keeps outside the repo and nobody notices because they all use IntelliJ.
- 3y ago
- CGamesPlay 3y agoFWIW, I still use regular vim with ale [0] and it does everything I want. It formats files with Black and isort, shows ruff and pyright errors, supports jumping to definitions, and has variable information available on hover. It also does this for every other language I write in. I have collected my config over the past several years, but I pretty rarely encounter errors with it. It requires no additional dependencies except for the language tools themselves (Black, ruff, etc.). [0]: https://github.com/dense-analysis/ale https://github.com/dense-analysis/ale [1] https://github.com/CGamesPlay/dotfiles/blob/master/files/.config/vim/plugin/ale.vim https://github.com/CGamesPlay/dotfiles/blob/master/files/.co...
- danjac 3y agoThis is the problem though: if you come to Neovim, and ask "what is the best formatter/linter" someone will tell you "use null-ls". Then a dozen others will say "don't use null-ls, it's been deprecated, use efm-langserver". OK, how do I set up efm-langserver with Neovim? Good luck! You could probably use a plugin, or maybe not. You'll need a way to install LSP servers. nvm-lsp-installer? Nope,that's also deprecated, use Mason. OK, MasonInstall Black. Wait, it's not formatting anything. Oh, you might need nvim-treesitter. Um...ok, but that's installed already. Ah, you just haven't configured it correctly...here is my setup (pastes 300 lines of Lua or vimscript with zero context as to where you are supposed to load it)....Why are you using efm-langserver? Formatter.nvim is all you need! What? That's old hat! You should be using neoformat! If you mention Ale or coc.nvim...they stare at you as if you have just stepped out of a time machine from the 19th century.
- CGamesPlay 3y agoIt feels like you just told me that the thing that works without extra steps isn't cool. Is the problem that you're worried about not being cool?
- danjac 3y agoThe problem is when you are a newbie to a space, you don't know the difference between "cool" and "what is the best practice as defined by the experts".
- Roark66 3y agoI'm in a similar boat. I've used vscode, pycharm/idea, visual studio and vim etc. I'm currently giving neovim + i3wm a try, and there are certain things I love. Specifically instant switching between my browser and my ide, the ide and terminal. However, the speed of the LSP(tips, method definitions when coding) is greatly exaggerated. For example for python there is the exact same 10gb ram using behemoth running in the background. Is it faster than using the same language server in vscode or idea? Yes, a bit, but definitely not 10x faster. Also, I have 2 complaints. One is about keys. There is a huge emphasis in vim world to set your own keys for everything... The problem with that is that for some rarely used action one forgets... Or one moves to a different machine. I think plugin like lsp-zero should more prominently document their _default_ keystrokes. I prefer to learn these before I start setting my own for everything. Second thing is what makes an ide most useful. A tree view file manager. I'm currently using nvim-tree. It's a nice plugin, and it works, but it lacks certain features like displaying large trees of empty folders in a "collapsed" way like vscode does. So, for now I'm sticking with nvim, but I can't say for how long..
- CGamesPlay 3y agoYou might be interested in installing the fzf-vim plugin [0]. It has a user-defined command :Maps which can be used to search through all keybindings (you can also do this with just :nmap in vim, but the fzf interface is much nicer). It also provides :Commands. This behaves remarkably like VSCode's command palette. [0] https://github.com/junegunn/fzf.vim https://github.com/junegunn/fzf.vim
- konart 3y ago>The problem with that is that for some rarely used action one forgets... Install https://github.com/folke/which-key.nvim https://github.com/folke/which-key.nvim and you will always have a popup that will tell you what keys to use next.
- jgilias 3y agoSome time ago I switched from my bespoke Vim setup to Doom Emacs. I was pleasantly surprised to find out how “VS-esque” it is. As in, it’s very easy to set up it for a new language. Usually I just need to uncomment the correct line in config. And even if it’s not there, finding the correct major-mode and installing it is usually pretty straightforward. So yeah, highly recommended! Of course, I use the evil mode for Vim keybindings.
- htag 3y agoIf your goal is to avoid becoming an expert in elisp then it's certainly possible while using Doom Emacs, but you're not getting the full experience.
- eikenberry 3y agoAn alternative to Neovim or VScode that might be worth checking out is Helix (https://helix-editor.com/ https://helix-editor.com/). It is a Vim/Kakoune inspired editor that is really starting to hit its stride. I haven't used it extensively yet, but I'm testing using it for development now and am thinking of switching to it full time. It maintains the minimalism of (Neo)Vim while coming with a great builtin setup like VScode. To get a feel for its development status I recommend reading their news post for their 23.03 release.. https://helix-editor.com/news/release-23-03-highlights/ https://helix-editor.com/news/release-23-03-highlights/
- danjac 3y agoHelix is quite nice, with some sensible defaults and an easier setup. The keybindings take a bit of getting used to if you are coming from it with years of vim muscle memory, but kind of make more sense when you think about it (select+action vs action+select). It's still rough around the edges but one to keep an eye on.
- _7tgr 3y agoHelix is interesting but I don't really gel with its editing language (subject + verb instead of verb + subject like (n)vim's). Happy to discuss what I think is lacking in more detail, but basically: the premise of 'you can see what you're about to operate on before you do the action' is satisfied for me by visual mode, and I like macros better than multiple cursors. So I don't want a (subjectively) less efficient editing language for these features. I think I generally agree with the complaints in [1], with the addition that I don't want to have to chord (press shift in the case of Kakoune, I forget what helix does here) to extend a selection. I wish they'd add a Vi mode. ;) [1] https://github.com/noctuid/dotfiles/blob/master/emacs/editing.org#why-not-kakoune https://github.com/noctuid/dotfiles/blob/master/emacs/editin...
- eikenberry 3y agoI've seen that breakdown before and have skimmed it but didn't really find an analytical breakdown of why style X is better/worse than style Y for person Z very useful. Tools preferences are to personal and varying. It really depends on how it meshes with your style and the only way to really test that is to try it out.
- baq 3y ago> I've been using vim for years, switched to neovim, and at this point I'm ready to throw in the towel and just use vscode for anything beyond simple text editing. I’ve done that a couple years ago after ~15 years of happy vimming. Still yearning for the text manipulation language combined with macros, but all the other gains significantly outweigh the worse editing capabilities.
- stavros 3y agoWhat are the other gains you like?
- baq 3y agoThere's an extension for almost everything, right there in the UI. The fact that it's electron means there is native support for graphical preview in e.g. markdown, mermaid, plantuml, jupyter, etc. Relatively sane defaults. I haven't tweaked much of the editor except the color scheme and shell startup timeout. Zero messing around with language server setup. It's 'install extension' and go. Sometimes a window reload is required, but it restores the session intact, even with terminal history. Remote ssh (and WSL on windows) is super seamless. The way I've used vim was always ssh+tmux. Most of this is unnecessary with remote ssh in vscode. There's probably more but these are what comes to mind immediately.
- stavros 3y agoThat's a good list, thanks. I didn't know of remote SSH, that's a compelling feature.
- weaksauce 3y agoneovim extension + vscode is a great pairing. full neovim in normal and visual mode but you can call out to vscode anytime you want in those modes and you also get neovim extensions too. it's great and fast... worth a try.
- tzhenghao 3y agoI also went through this phase about a year ago, then just gave up and went with VSCode for its superior out of the box experience. That said, I still fire up vim to read files in a server or make one line config changes, but everything else....VSCode. Related: Imagine having to remember the full scp / rsync command to sync source file(s) between your local machine and server, but it's just a drag and drop on VSCode. I've just come around to accept that we've been blessed with great hardware over the years, and it's a waste if those extra CPU / GPU cycles aren't translated to significant dev productivity improvements. I'd take slower (~ ms) editor paint times over saving hours messing with vim configurations.
- xdennis 3y ago> Related: Imagine having to remember the full scp / rsync command to sync source file(s) between your local machine and server, but it's just a drag and drop on VSCode. What's hard about this? rsync -a dir/ server:dir/ I'd much rather have commands in my terminal where I can search for them later than do things visually and have no record of what I did once and how to repeat it.
- godelski 3y agoI've never tried neovim, but have been a vim user for over a decade and never really dealt with problems where I need to touch vimscript at all. Is neovim that clunky? Is it plugins?
- _7tgr 3y agoNo, it's not clunky. The plugin community is just a lot more active, imo. I personally avoid plugins wherever I can, since I prefer to write my own little Lua scripts that do stuff the way I like. (And I quite like the Lua API-- the lua plugins I use seem be a lot faster/less janky than the vimscript ones, as well? not sure)
- kzrdude 3y agodatapoint: lazyvim has had 127 releases since it was first released. Which was in november or something like that, maybe just 7-8 months ago.
- danjac 3y agoMy feeling is that neovim per se, as a piece of software, is fine, but that it belongs to one of those developer communities that prizes freedom and infinite configurability over the day-to-day practicality of getting things done. So something like LSP integration has too many ways to do it across too many plugins. If you are deeply involved in the community and are willing to put in the time, sure, you could probably build something superior to vscode. But the time invested to get there might not be worth the marginal productivity gains.
- constantcrying 3y agoSetting up vim with IDE features takes an hour maximum + 2 minutes per additional language. If that is too much for you, you could have used any of the various vim/nvim distributions with the features already there. You could have even used Doom Emacs with vim keys. If you don't want to use vim, I do not mind whatsoever, but if you put in a bit of effort the solution to your problems would appear.
- j16sdiz 3y agoSometimes it is too many choices. Each of them have its own glitch and dependency. Finding out which one I like most is time consuming.
- serial_dev 3y agoSure, it's one hour if you did that already 20 times and you know the ecosystem. An hour is barely enough to go through the vimtutor which itself is pretty basic (aka you won't get far with it, so you need to keep learning and practicing). If you are a vim newbie, it takes a lot of time to figure out you need plugins, then figure out how to install plugins, then what's the difference between plugin installers, finding the needed plugins for your languages, getting familiar with each plugins commands, resolve any conflicts between them, then you need file pickers, debuggers, task launchers, snippets, split screens, multi tabs, etc... Even then, you only made things work once... Good luck figuring that out in one hour... Then you'll need to keep the config working, practice and memorize the commands, movements, and maybe customize your workflow. Configuring vim to replace your IDE may be worth it, but "set it up in one hour" is, in my experience, extremely unrealistic.
- xeyownt 3y agoI think it takes at least one month to get into vim, let alone mastering any of the plugins, and afterwards you keep learning every day. IMO this is not due to the difficulty of installing plugins (which is becoming easier and easier), but rather to embrace the vim "philosophy". Many think that VSCode is better because easier to use and has more features. However I think this is because they don't use any advanced features of VSCode either, only the glaring obvious ones.
- mumblingdrunk 3y agoThis is why I switched to Helix. The configuration is practically non-existent, and it has default configs for all the language servers I could ever want to interact with. I just put the language server binary in my path and I'm ready to go with autocomplete and all the other features.
- _7tgr 3y agoHelix is cool, but it doesn't have Vim keybinds, which is unfortunate. I find its own system to be a little worse than Vim's (see my other comment about it in this thread).
- RMPR 3y agohttps://raw.githubusercontent.com/LGUG2Z/helix-vim/master/config.toml https://raw.githubusercontent.com/LGUG2Z/helix-vim/master/co...
- paulvandermeijs 3y agoI've also switched to Helix recently and I get the feeling that is not emphasized enough how much it is about having default integrations for modern standards like LSP, Tree-sitter, and DAP. It's amazing how much functionality you get with just that and not having any plugins or complex configuration.
- klardotsh 3y agoI actually dread the day Helix eventually gets the WebAssembly plugins system that's been floated around. The current Helix culture of "you get a Kakoune-like editor that can do three categories of "bonus" things, and NOTHING ELSE" encourages a more manageable pace of development (and maybe more importantly: slower updates for those of us exhausted of software churn breaking our stacks constantly), and discourages feature creep/bloat. I love where Helix is at currently. After some tinkering and adjusting a few keybinds, and after a few releases for them to fix various bugs I'd been dealing with, it's quickly become my new favorite editor, and has nearly fully replaced NeoVim. Hats off to Helix.
- singpolyma3 3y agoIf you want IDE like features, then of course an IDE is a better choice. I've never understood why people and to extend vim to try to make it half of an IDE.
- gv83 3y agoa colleague of mine answered the same question with: "jetbrains products reek of java" which i translated to "cluttered ui" and "not responsive".
- skydhash 3y agoJetBrains product has always been fast for me, as I wouldn't run them on a 10-year-old computer with an HDD drive. They've been very configurable, more than other IDEs I've used. An IDE is a host of tools, so the UI can be dense because they can do so much stuff. You invest in your tools, and that can also mean buying a powerful enough computer to do the stuff you want.
- gv83 3y agoi share your feelings and i'm a happy jetbrains customer (and i dont do java!); but i see the point of people not feeling comfortable using them specially when coming from more pared-down experiences. emacs and neovim are also snappier, vscode is marginally snappier, doesn't bother me but it's noticeable. JB also has some glaring holes, like the inability of easily specifying an env file to load when running projects from the IDE runner (and the plugin to do this was half broken with the 2023 versions)
- xigoi 3y ago> the UI can be dense because they can do so much stuff. Vim can do a lot of stuff, but its UI is very minimal. That's because it recognized that there are already many buttons right under your fingers, so there's no point in putting more of them on the screen.
- skydhash 3y ago
- 59nadir 3y agoJetBrains have excellent offerings for both JavaScript and Python, in my opinion. I happen to like Neovim and I don't use the languages you have issues with the Neovim side of, but if I were to use an alternative it would definitely be JetBrains IDEs.
- wolletd 3y agoJetBrains also has a excellent Vim Mode plugin that provides most features I love Vim for.
- vladvasiliu 3y agoThis is what I use, but it should be noted that vim commands clash with the IDE's shortcuts, so you have to move them around.
- yjftsjthsd-h 3y ago> The amount of work needed to get a basic IDE up and running for your languages of choice, I don't think vim is meant to be an IDE. If you want an IDE, go get an IDE. If you want a text editor, vim works well. But vscode is unwieldy as a text editor, and vim is painful to contort into an IDE.
- marricks 3y agoExactly this. Don't blame the airplane for not being a car, or a submarine for being a beach buggy. Obviously people have made things for VIM to be IDE like, some are cool to me, but completion-integrations-lang-servers always seemed so anti-vim to me. Make an HTTP request every key stroke to get suggestions? The. Latency.
- konart 3y agoVSCode does the same. And it has nothing to do with HTTP (not by default at least).
- lawn 3y agoNo, Vim can be an excellent IDE. Just not a "works out of the box" one.
- yodsanklai 3y agoon the other hand, using vim mode in vscode let you use vim where it shines: modal editing. It's the best of both worlds.
- johannboehme 3y agonot really.. vim is easy to extend and adapt. You loose that with only vim mode in vscode. You also loose the ecosystem and relevant core functionality like most vim core functionality like :grep :vim :make, quickfix list, arglist etc..
- DropInIn 3y agoThen tell the vim fan bois to stop telling people to use vim as their ide.... The issue isn't with the fact people try to use it that way, it's that those who use vim are adamant it's the best option for doing so and berate the Other until they try.
- raverbashing 3y agoCompletely agree (As much as I'm team *Vim) Vimscript is a mess. Oh, so you mean 'noremap' means remap this? No way! /s The story about plugins is so true, regardless of the above. People will want you to install a plugin with 5 stars that will not play nice with anything else to do something basic like pre-save processing. Or one of the 'everything but the kitchen sink' plugins that has an end goal of giving you a Borgified Vim And in the end I sincerely don't care, I could use the time I'm playing with this to install VSCode, or something else and have something more complete OotB
- _7tgr 3y agoYou might want to give nvim's Lua API a try. They took the opportunity to fix a lot of the semantic issues with vimscript
- Faceless1230 3y agoI'd recommend trying a neovim distro like lunarvim out. It has black and all other typical ide features configured out of the box and doesn't mess with your normal neovim config.
- mkmk3 3y agoI tried out spacevim, but then some feature was getting in my way and I couldn't figure out how to turn it off (I've forgotten what now). I think thats a disadvantage to some of these heavily customized vim flavors. Plugins don't necessarily work out of the box, and when they do they promote their own way of interaction that sometimes needs to be learned.
- cassepipe 3y agoAs a recent LunarVim user, I can really recommend it. Coming from vanilla vim, it has been a pleasure to use. More power at the cost of less configuration. And beginner friendly (for someone that's familiar with vim)
- dcow 3y agoI cant stand VSCode anymore after using Zed[1]. I mean it was always clunky but there weren't better options. Now there is. 1: https://zed.dev https://zed.dev Edit: I did use Helix for awhile (long enough to still have muscle memory for their editing model) but it’s just not there yet and eventually moved on to Zed.
- p-e-w 3y agoI love the concept and engineering behind Zed, but considering how software startups tend to fare, there's just no way I'm going to mentally invest in a closed source dev environment. Even if they succeed commercially, chances are some day Microsoft just buys the whole thing and shuts development down a week later. No thanks.
- dcow 3y agoThe way I see it if Zed fails I just go back to VSCode and I’m no worse off than before. The nice thing about Zed is that it’s batteries included so it really isn’t hard at all to pick up. I did in maybe 15 minutes tops, seriously.
- auggierose 3y agoThe description looks cool. It's macos only though for now.
- erfgh 3y agoOne of the basic tenets of Vim is that it is not an IDE. It is a text editor. By the way, if you need an IDE for Python then you're missing the point of Python.
- danjac 3y agoI don't need an IDE for Python. Of course I can use a plain text editor if I want. Hell, nano even. But right now, today, at work, I have a large legacy Django project to maintain, and it's kind of nice having little things like auto code formatting and linting to help me as I go and prevent me from making dumb mistakes and saving me a ton of time so I can focus on the problem at hand, not making the code look nice for review and I can hop between buffers to fix up the tests as I change the code. I can certainly just run black/isort/ruff what have you manually, or with pre-commit, sure. But it's more productive to be able to see changes as I work. Sure maybe I shouldn't be using Python, and maybe the original developers should have written it in Rust or whatever. Fine. But that's not what I'm being paid for.
- xigoi 3y agoYou can very easily set up (Neo)Vim to run Black on save.
- thenoblesunfish 3y agoI was going to ask a similar question. This seems really cool, but since I already suffer with the complexity of vscode at work (but it's supported so is a net win), and I have my Vim setup that is small enough to (mostly) understand myself, why add a third thing which combines bad features of both? I'm responsible when it breaks, and it's complex.
- konart 3y ago>The amount of work needed to get a basic IDE up and running for your languages of choice, even for commonly used languages such as Python or Javascript, is far too much for someone who wants to get on with their day job or hobby coding and doesn't want to spend precious hours fixing obscure issues in Lu Can't agree with this at all. I don't think I've spent more than an hour in total setting up my vim config back in a day and maybe 1-2 hours in total when migrating to neovim (lua, packer etc) and then migrating to Lazy. Yes, you have to spend some time building your own DE, but at least now you know what it can really do, all the hows and whys. >Furthermore, the community does not have a good culture of documentation and learning Most of the plugins have docs that can be accessed via (neo)vim itself. Usually you can find all information there. >Setting up that plugin will require another plugin, and so on until you end up with a Jenga tower of dependencies... Not true at all. Only a few plugins have strong dependecies and even then you rarely come across a plugin that will have more than one dep.
- airtonix 3y ago[dead]
- afarviral 3y agoHaha 1-2 hours ... Maybe things have improved since 2018 but I was up to about 25 hours and still not satisfied with the results. That might be just being a perfectionist or coming from another IDE and trying to replicate something. But 1-2 hours is not a reasonable amount of time to set aside to set up a truly usable custom ide with neovim to acquire the knowledge to drive it.
- konart 3y ago>and still not satisfied with the results One can never be satisfied with the results. "There is no endgame", right? 1-2 hours is more than enough to get to work with autocompletion, syntax, filesystem explorer and a few more plugins for your convenience. >coming from another IDE and trying to replicate something This. Some people try to replicate IDEA or something like that. Obviously you can spend weeks trying to do this Hell, configuring https://github.com/mfussenegger/nvim-dap https://github.com/mfussenegger/nvim-dap + https://github.com/rcarriga/nvim-dap-ui https://github.com/rcarriga/nvim-dap-ui can take a week alone I guess.
- atoav 3y agoFor me vim is a good text editor. You could somehow turn it into an IDE — even into a good one, but that is not what is the core value proposition of vim. I am mostly using sublime text for programming projects and vim for editing configs on headless servers. If I like to use vim for programming I'd try to add vim keybindings to my IDE instead of adding an IDE to vim.
- marcusramberg 3y agoDid you actually try LazyVim? It makes this whole process a lot easier, with pre-cooked extras for most popular languages.
- danjac 3y agoYes I did, and no it didn't really help. Sure it was a much slicker starting point, but when I needed to do a bit more (ie. configure a formatter) it just added more obfuscation than anything. The "pre-cooked" part does help with setting up linting, but formatting...you're kind of on your own (if you search the source you can find an example with prettier but you will still need to add your own integration for anything else).
- marcusramberg 3y agohttps://lazyvim.github.io/plugins/extras/formatting.prettier https://lazyvim.github.io/plugins/extras/formatting.prettier I dont have specific code for formatting in my lazyvim config other than loading that extra. And it does formatting out of the box for terraform / typescript / go ++
- jeffchao 3y agoSame sentiment here. After 2 decades of development and having been through phases such as Gentoo, Vim+plugins, and other deep dive hobbies, I enjoyed the time spent, but now I just want something that works out of the box. I've found IntelliJ/GoLand with Vim bindings to work well for me. That Vim muscle memory is something I'll never get over.
- iansinnott 3y agoYou can have it both ways! Use neovim to handle key presses in VSCode, keep all the benefits of a text editor that (mostly) Just Works. - https://github.com/vscode-neovim/vscode-neovim https://github.com/vscode-neovim/vscode-neovim
- deleted 3y ago[deleted]
- prmoustache 3y agoI am using mostly default settings on my neovim setup for most plugins. I can't do much with vscode before also install tons of plugins and eventually setting them up. The only major difference to me is a central marketplace for vscode plugins instead of relying on github search engine+recommendations and being subject to telemetry I don't want.
- flippinburgers 3y agoNow that lsp is a first class citizen in neovim is very usable with little modification. It will never be a ctrl+p install away from feature X system though. You do have to put some effort in.
- tomaaron 3y agoIf you want to ditch m$ but still enjoy vscode, just use open source vscodium: https://vscodium.com/ https://vscodium.com/
- CodeCompost 3y agoWhich is practically useless due to Microsoft licensing restrictions on plugins.
- josephd79 3y agohttps://github.com/nvim-lua/kickstart.nvim https://github.com/nvim-lua/kickstart.nvim I started with this config. This made it a lot easier to start.
- delijati 3y agoI went with a minimal approach ... I still use my `.vimrc` file, removed all code completion stuff and added LSP https://github.com/VonHeikemen/lsp-zero.nvim/blob/v2.x/doc/md/configuration-templates.md#vimscript-template https://github.com/VonHeikemen/lsp-zero.nvim/blob/v2.x/doc/m... ... next step treesitter but i'm in no hurry :)
- prohobo 3y agoI just want mouse support... I need a GUI for my projects to navigate and organize them well, and I don't like how blind and tied up I feel in Neovim. I'm looking forward to some kind of open source VS Code killer with vim editing and native platform builds.
- yadingus 3y agoOut of curiosity, why do you need your text editor to also be a perfect file manager?
- prohobo 3y agoBecause files and directories make up the core organization and architecture of any project. Obviously when I'm working with 1-5 files then Neovim is great, but it's awful when I'm working on a real project with dozens of directories and hundreds of files. I can't hold that much contextual information in my head to simply remember the correct file name (or function name) and hit some keyboard shortcuts to jump to it. I need to actually see it all together. VS Code's project tree and tabs system works great for me to always understand where I am working, and I don't have to remember any keyboard shortcuts to navigate.
- twleo 3y agoCode should be self-documented. And editor should have a good mechanism to help you understand the source code. Emacs does better in this angle than Vim by far. You can find the documentation for every variable (describe-variable) and functions (describe-function) easily and jump to their source codes.
- radiKal07 3y agoI think it depends what you use it for. I use neovim for Flutter and it works great. If I want to do Android dev I need Android Studio.
- Arch-TK 3y ago> The amount of work needed to get a basic IDE up and running for your languages of choice, even for commonly used languages such as Python or Javascript, is far too much for someone who wants to get on with their day job or hobby coding and doesn't want to spend precious hours fixing obscure issues in Lua. First off, editing Python (I am not familiar with Javascript enough to make any claims about it) doesn't require any sophisticated IDE and can be done quite proficiently in any decent text editor. I don't say this having written 3 lines of Python in my life, I say this with about 9 years of experience writing at least some python almost every single day. I think the powerful baseline that an editor such as vim or neovim provides is sufficient for most development tasks in most languages which aren't e.g. Java. That being said, integration of a syntax and type checker can be nice to make development a little bit more painless and tab completion can sometimes take something which might take 20 seconds to look up and verify and turn it into a 3 second task. Genuinely the initial up-front work for these features for a new language for me is to make sure a language server is installed in the path and add it to the list of active LSPs in my configuration file (one line change). This takes about a minute or two depending on how quickly your package manager can install the language server. Sometimes it's some obscure language where the language server isn't easy to find. There's a plugin for automating the installation and configuration of language servers. There are pros and cons to this plugin. > Furthermore, the community does not have a good culture of documentation and learning: too many plugins have very sparse docs This is still true about the lua API for neovim, that being said, once you learn it once, it stays mostly stable (and when stability breaks, it's mentioned publicly in the changelog) and leaves a lot of power at your fingertips. When it comes to third party plugins, a lot of them are just snippets of code which someone wrote and found useful, I think expecting a book on that is a bit excessive, a lot of the time you can just read the code or write your own more tailored version. > other online resources such as the Neovim subreddit are hostile to newcomers with "RTFM" a common answer My personal experience is with the neovim IRC channel which has generally been helpful. Although, again, if you learn the APIs which neovim exposes, a lot of questions can be answered by simply solving the programming problem which presents itself. I rarely find myself reaching for a support forum. > The community is also fragmented, with too many ways to do the same thing in the name of some platonic ideal of personal freedom over practicality. There's a difference between the editor having many ways to do the same thing and the community having written many solutions for the same problem. I would struggle to find a community of programmers who don't have the latter problem, but neovim doesn't really have the former problem to any major extent. > A simple question like "How do I set up Black with neovim to format my Python files on save?" ... is a programming question. What events does neovim expose hookpoints for to do things such as auto-formatting? There are many events but BufWritePre seems the most appropriate. How do you call black from neovim? Well the PSF official neovim plugin is probably a good starting point. How do you glue this together? Well, the on_attach function of the LSP for python seems like a good starting point. Something like: vim.api.nvim_create_autocmd('BufWritePre', { buffer = buffer, command = 'Black' }) Now how you integrate this into your config is again a little programming problem in and of itself. But it's not really a complex programming problem. You are after all not trying to write some large complex and scalable system. You probably have all the tools necessary to organize your code well. I went with a highly functional approach which passes functions around everywhere but you may be more familiar or happy with another approach. The beauty of a neovim configuration is that you are the only person who needs to maintain it. I don't find any of this particularly time consuming. I normally don't touch my neovim configuration for months at a time as it continues working. I keep it tracked in a git repository and synchronise this across machines whenever I change something. My only personal annoyances with neovim are the fact that they haven't stabilized it yet and that package managers for neovim aren't as mature as e.g. something like cargo where you can use a lockfile. That being said. It's a powerful tool which requires a time investment to learn. But if you learn it, you can achieve really quite sophisticated things without needing to spend time looking for a very specific pre-existing solution. Usually to solve your problem you will need only a small handful of lines of lua. > In the meantime, I can just Ctrl+P and install what I need in vscode and be on my way in a few minutes. That's nice, but what if you want to run a different auto-formatter depending on the codebase? What if you want to automate this? What if you want to disable auto-formatting altogether in some cases? What if you want a configurable list of auto-formatters per codebase? With neovim I have this particular highly flexible feature working in ~20 lines of lua. How much would it take to modify or make a vscode plugin to implement these features? My most common issues with vscode were: lack of flexibility, lack of customizability, and lack of transparency. But these are expected tradeoffs of such a system. I understand why vscode exists with these tradeoffs but I am not willing to make them. I agree that neovim is not for people who are not interested in learning their tools. For people who want to just start typing code with whatever automations they are reasonably familiar with, and willing to accommodate any weird variations in the workflow which using a different tool might entail then vscode seems like a fine choice. But the main problem with neovim here is your own perspective of it. It is first and foremost a powerful text editor with an IDE building toolkit. It is not an IDE itself. You can use it to very quickly design a bespoke IDE which you like, without writing very much code. But you need to spend the time to learn its APIs first. If spending the time needed to learn it and then writing ~20 lines at a time to get it working how you want is not your cup of tea, then don't use neovim, it's clearly not for you.
- WastingMyTime89 3y agoVim definitely was designed and remains an editor first and foremost. The IDE=like functionalities were clearly cobbled together later and it shows, on that we agree. What always surprises me however is why having realised the limit of this model, decide to go back to VSCode, another editor with cobbled together IDE=like functionalities? IDEs are nice. Last time I checked VSCode debugging was still subpar and required fiddling with configurations.
- _giorgio_ 3y agoAgree. It's crazy and I've given up. I have windows and linux computers, and what works for one, doesn't for the other. Setting up a shared vimrc is a nightmare. In the end, I only use vim for text. Colab and jupyter for all the programming.
- gsinclair 3y agoI think your experience report of the NeoVim subreddit is severely misrepresentative of reality. I have never seen a RTFM response. Many answers point to exactly which part of the documentation would be helpful. Your Jenga tower of dependencies is much more imagination than fact. If you want Black to format your Python files on save, write an autocommand. That's what they're there for. If you need help to do that, ask for it. Or if you don't want to take the trouble to learn how to use (neo)vim, then don't use it; that decision is fine too.
- oblio 3y ago> If you want Black to format your Python files on save, write an autocommand. That's what they're there for. If you need help to do that, ask for it. The real question would be: Why does the 50 year old editor with supposedly a huge community and tons of editors not have support for a popular formatter for probably the most popular programming language on the planet, and instead everyone has to write their own (probably buggy) variation of that integration?
- skydhash 3y agoBecause it's been here before the formatter and will be here after it. I don't think there is any support for any formatting tool, except the general act of formatting for every formatting tool. And if you find your config has multiple lines just to format languages you've touched, then it's time to build a plugin or search for one. And if you find it, and it's quite not like you want, extend it as most plugins are open source and free. If the tool doesn't suit you, build your own or find another.
- _7tgr 3y agoIt does, you'd just have to install a python plugin that registers the autocommand-- or leave out the plugin and register the autocommand yourself. The (n)vim/emacs communities aren't fond of integrating the hot new thing for each language directly into the editor-- I think this is a lesson that comes from being 50 years old! As for whether it would be buggy, I'd doubt it? Unless Black's principle of operation is different from most formatters, it should just write the formatted contents to the file, right? The autocommand you'd use would just run Black on your current file on each save. So where % is Vim's symbol for the name of the currently open file, :silent! suppresses stdout/stderr from the formatter, and :! runs a command: autocmd BufWritePost *.py silent! !<format_cmd> % (Don't quote me on that, but it should be essentially correct. I'm not at a computer right now.) Actually, it looks like you can install an (n)vim plugin from the official Black repo here: https://github.com/psf/black/blob/main/plugin/black.vim https://github.com/psf/black/blob/main/plugin/black.vim And then the autocmd would be autocmd BufWritePost *.py silent! Black This stuff is documented here: https://black.readthedocs.io/en/stable/integrations/editors.html#vim https://black.readthedocs.io/en/stable/integrations/editors.... Anyway, I think it's actually a really cool effect of doing this that you realize a lot of the scaffolding underneath most editors _isn't_ that complicated! It's totally understandable :)
- cersei 3y agoI don't disagree, it's always a balance of "how much time do I actually want to spend on my workflow vs getting the work done", but I think the only reasonable way to use Vim is to build your environment over time (many years) and have it in source control so that you never have to do it again. You'll still have to keep making updates of course, but that's typically a bit smaller time commitment.
- Francis0xf 3y agohttps://lapce.dev/ https://lapce.dev/ might be a good compromise it looks and works practically like vscode and runs well on older hardware
- canistel 3y ago+1. I have always wondered why lapce does not get the attention it deserves. Supports both modal and non-modal editing.
- divan 3y agoI had the same pain with NeoVim infrastructure, but AstroNvim/astrocommunity kinda solved it for me.
- flohofwoe 3y agoI use VSCode with one of the neovim extensions for 'IDE tasks' (none of those extensions is perfect though, but they're "good enough"), and a vanilla vim without customization for quick text editing tasks on the terminal (sometimes even within the VSCode terminal panel). E.g. for me, "vim" is more like an input scheme that works across editors, less a particular product.
- tlonny 3y agoSadly I completely agree with you. Whats even sadder is I recently made a post proselytizing the virtues of neovim over vscode. The final straw for me was discovering that vscode automatically updates packages and imports when moving files around a java project - something that doesn't seem possible in neovim despite hours of research and lua tinkering.
- achenet 3y agoI switched to Helix for this reason :)
- thiht 3y ago> I don't like being sucked back into the Microsoft ecosystem You’re not though, there’s no lock-in.
- goku12 3y agoThey are certainly still trying. I used vscode a while ago. Some of the best and most essential extensions like LiveShare and Remote are proprietary and worked only on the proprietary build of vscode (the last time I checked) and wouldn't work on OSS builds like vscodium (why though?). Both these extensions and the proprietary build of vscode come with telemetry that's either opt-out or always enabled. They nudge you ever so slightly and gradually towards the proprietary build. I left vscode since I don't like such manipulations.
- thiht 3y agoIt's not lock-in, it's feature differentiation. Other platforms are free to develop their alternatives of these plugins. There's nothing preventing the community to develop a fully OSS Liveshare or Remote extension (and they are!)
- johannboehme 3y agobut there is. VSCode core may be open source, but the plugin marketplace certainly isn't. So if you for example use VSCodium, you don't have access to the plugin marketplace and eather have to use an alternative or manage your plugins completely manually on the filesystem.
- thiht 3y agoSo what? You use the plugins available on the platform you use, that's standard practice. Would you complain Sublime Text plugins are not available on VSCode? Or emacs plugins are not available on vim? This is not lock-in, just a different feature set.
- KronisLV 3y ago> I don't particularly like vscode. It's heavy and slow and janky, particularly on older laptops. I don't like being sucked back into the Microsoft ecosystem after spending years getting away from it. But ultimately, I want to just get on with my job, and my job is not Lua Developer or Neovim Plugin Expert. I've personally been test driving JetBrains Fleet and have to say that it's pretty okay for most of my lightweight dev needs: https://www.jetbrains.com/fleet/ https://www.jetbrains.com/fleet/ It's still a bit early for it and it doesn't have the same ecosystem that VSC has, but it'll probably be even better in 1-5 years and is decent already. For most of the more heavy work I just use JetBrains IDEs, but that's very clearly a no go for the less capable devices like my netbook. For even lighter options, on Windows there is Notepad++, which has been okay although not an IDE. There's also CudaText, which feels quirky but has decent language support: https://cudatext.github.io/ https://cudatext.github.io/ Maybe even something like Geany is worth a look, depending on your needs: https://www.geany.org/ https://www.geany.org/
- SanderNL 3y agoI feel you, but I’d like to point the Finger in the other direction as well: (modern) programming is not sane. The tools and the environment are not made to be sharp and minimal, we are not using hammers and screwdrivers, we are all using custom made chainsaws with hundreds of proprietary extensions and that’s about as minimal as it gets. Sometimes it’s actually more like wielding multiple nunchucks each covered with chainsaws. It’s quite disappointing we need multiple layers of assistance to even begin our work. Syntax, autocomplete, go-to def. These sound like simple things, but are fiendishly difficult. Catering to all the various languages’ their idiosyncrasies is, as you have noticed, a task beyond the community. If something like editing some basic pieces of code takes multiple man-years to facilitate and requires “language servers” I tend to look towards the environment that produces such monstrosities. Maybe we could stop complicating things so damn much? Impractical I know, but I won’t give up an ideal just because it can’t be reached (now).
- dbalatero 3y agoSorry what alternative are you proposing? Instead of syntax highlighting do you want… minimal syntax in languages? Instead of autocomplete do you just want to type the thing out manually? Instead of go-to def do you just want the code in 1 file? These things didn't require language servers historically, but LSP was an attempt to reduce "many editors re-implementing the same functionality many times" to "implementing the same functionality once and connecting many editors to it". This has a cost, and YMMV on the docs for getting LSPs set up, but I don't think I'd prefer going back. I don't use it, but it seems like VSCode has 1-click plugin installs for most of these LSP integrations, more or less?
- SanderNL 3y agoNotice I said these features sound (and should be) easy, but they are not. The “intellisense” features themselves are fine as QoL improvements. It’s the environment and the languages themselves that produces these “problems”. I mean, let’s say, Python. I just don’t know what to say to you if you think sanity lies in that direction. I’m in the somewhat marginal Alan Kay camp and think computing can and should be reconsidered from scratch. I cannot prove we are on a dead end, but I have the strong sense that we are and I want to encourage other paradigms and ways of approaching development and computing in general.
- rcarr 3y agoThis. As someone now in their 30s who didn't learn to code until their 20s, I've tried several times with vim/emacs but it just isn't worth the hassle because I just don't have the free time anymore to endlessly fuck about with config files and learning the ins and outs of each program. So many of the absolute best seem to use one of vim/emacs but then so many of the absolute best started coding when they were children or teenagers with time on their side. It would be a lot easier if they could develop some kind of easy way to switch between these pre made configs but last time I tried chemacs and cheovim I couldn't get them to work as expected. I think emacs has built this feature or something similar into the release coming out soon so I might give it another go in a year or two but I dunno.
- johannboehme 3y agohmm.. but you also spent a lot of time to learn programming. Why not invest some time in the use of professional tools? If you master an editor like vim, you'll never need to spend time to learn additional IDEs. In the past i needed to learn VSCode, Eclipse, IntelliJ, XCode, Visual Studio and some other niche IDEs. All have very different menu structures and keybinds. Just to unify that was worth the time learning vim.
- rcarr 3y agoBecause I don't need to? I honestly think it would be easier to follow along with a tutorial for whatever language I'm using in any of those editors you've mentioned than one for Vim or Emacs.
- xmcqdpt2 3y agoI think it's important to know a terminal text editor if your work involves remote servers. Then once you know one of the good text editor, you may be tempted to use it for other tasks. That's where people get into trouble. The base emacs and vim documentations are actually excellent, the problem is the plugins. Just use an IDE for IDE tasks and a text editor for text editing tasks! I'm not going to start a new project in Intellij just to edit a config file or take notes about something. Why would I want to pollute my minimal emacs config so that I get a flaky IDE? (Of course it's fun to program in a text editor because it's fast and distraction-free, which is why I use them for hobby projects. But for professional work I use professional tools.)
- lagolinguini 3y ago> I don't particularly like vscode. It's heavy and slow and janky, particularly on older laptops. I don't like being sucked back into the Microsoft ecosystem after spending years getting away from it. But ultimately, I want to just get on with my job, and my job is not Lua Developer or Neovim Plugin Expert. Personally I've started paying for intellij and using it with it's vim emulation. I know it doesn't solve the problem of being clunky on older laptops, but it is an amazing experience to use. I get the best of both worlds, I get really good vim emulation so I don't have to relearn editor shortcuts, I get the benefits of a modern full fledged IDE with many useful features that work out of the box with basically 0 configuration (debugger, git, tasks, etc.)
- ibrarmalik 3y agoSame. I like it better than the vscode vim emulation, which is more “strict” and turns to the visual mode when selecting anything with the cursor. Which I personally think is the worse part of vim.
- jcpst 3y agoIntellij IDEs for my day job are awesome. I do have a personal all-products license as well, but I hesitate to go “all in” and be dependent on them. But it is ok to just use a lot of editors for different things. VS Code is ‘good enough’ a lot times. I like writing notes in emacs org-mode. NeoVim on the command line. Sometimes I use Helix, I think it hits a sweet spot between snappiness and minimal configuration.
- ivlad 3y agoI use vim for years, too but also I keep my .vimrc and, more recently, .vim in a git repo (using bare repos for dot files discussed here: https://www.atlassian.com/git/tutorials/dotfiles https://www.atlassian.com/git/tutorials/dotfiles). So, getting a functional environment on a new system is close to running `git pull` once. I don’t update plugins too often, because they work, but I also don’t use too many. Based on my git history, I last updated a vim plug-in 11 months ago.
- johannboehme 3y agoI dont know.. The argument i read all the time is "i don't want to invest time in vim". But what kind of professional spends hours uppon hours learning his craft (programming), but is unwilling to invest some of those hours into mastering professional tools? What about sharpening the axe? The amount of time i saved by sticking to vim is definitly more that the time i needed to learn it.. IDEs are easy mode and waste of resources. Its ok to start with them as a noob, but down the line i want to customize every part of my toolchain. (And thats just horrible to do in VSCode etc..)
- mangodrunk 3y agoIf someone likes to use vim, then so be it. If someone likes to use VSCode, then so be it. IDEs can also be called productive mode and use the right amount of resources necessary for large projects. They will get the job done, and for many it is the preferred option. Vim doesn’t have to be the tool you use when there are others. If it was the only tool, I’d agree that people should know it better. Thankfully it’s not the only one.
- kzrdude 3y agoSome hours is not what one should put into Vim, IMO. I've used it for many years and felt I got better at it very gradually (maybe I'm like that with most things). It's much more than hours! It's using it every day for a few years :) To honor the many-years of vim, I relearned a new vim feature now: using :g to run a macro like this: https://stackoverflow.com/a/5292858 https://stackoverflow.com/a/5292858
- wheresmycraisin 3y agoStrange, the only thing I need to do to get everything I need these days for a new language is install the right LSP provider and point vim to it. It used to be much harder, now it's closer to trivial.
- lemper 3y agoI've stopped using vim and started using visualstudio + vim plugin and called it a day. for me, it's just not worth it to tinker with truckload of plugins just to get ide features work.
- aerhardt 3y agoCompletely agree, I've tried a full vim migration before and it's been a futile exercise. JetBrains with the vim plugin does it for me.
- StevePerkins 3y agoI just want a decent open source native editor with a native GUI. 10+ years ago, when I and almost everyone I knew were on Windows or Linux, this was simple and ubiquitous. UltraEdit, Notepad++, Vim and Emacs of course, etc, there were dozens of options to choose from. Then I and most developers that I know switched to Macs, and now this is an alien concept. There's a dearth of open source Mac development, and much of what exists uses Electron or some other crutch to avoid committing to the Mac platform. I've tried Neovim, but the "GUI" version is basically just the console version in a window. Might as well just skip it and do everything from the terminal. There is MacVim, but you have to open it from the command-line in order for it to scan your home directory properly. If you pin it to your dock and launch from there, then it doesn't know who you are and launches in stock vanilla mode without reading your .vimrc. Same problem with Geany. I could PROBABLY figure out how to modify the dock icon to launch with the right flags, but the point is that this is unreasonably complex and arcane for most users. So... I just stumble along with VS Code by default, like most people these days. It's an odd shame that cross-platform desktop app development is as dead as it is, especially considering that most devs today are not using the dominant platform anymore.
- pretext 3y agoHave you tried VimR — Neovim GUI for macOS? https://github.com/qvacua/vimr https://github.com/qvacua/vimr
- dizhn 3y agoI went from VSCode back to vim via Neovim and it works great. I am setup for go and lua. I took a base config called kickstart and removed things I didn't need. Then I added things I do need. As for the community, the channel on Matrix is one of my favorite communities. Whenever I needed help, it came instantly and with precisely what I need. (They must be getting the same things a lot). They never suggested I use a big plugin to solve a little problem as far as I can remember. All in all it looks like we had a wildly different experience. I suspect the real issue is that I like to work with vim a million times than I did with vscode. You might me biased the other way. I feel better on the command line and it's amazing how much people have figured out already to make things run well and look nice. Kickstart nvim: https://github.com/nvim-lua/kickstart.nvim https://github.com/nvim-lua/kickstart.nvim
- duckqlz 3y agoI vehemently disagree with this. I find managing vs code extensions a nightmare and having to download them based on rating alone when there are 300 extensions for every query is untenable in a production environment. Furthermore if you want to customize a vsc extension to do something unique for your set up you have a whole new set of issues like finding the settings, documentation etc. Now if you can get over all of that it’s still a bulky, slow and cluttered IDE that is constantly sending telemetry data and other nonsense around the web While I haven’t tried LazyVim I would strongly recommend LunarVim to anyone new to the vim ecosystem. It installs fast, needs minimal set up and packages can be installed with a single line in the config or through packer. Most things work out if the box. But if they don’t vim is so mature you can just ask chatGPT. Seems like ease of use is also the aim of lazyvim so I would not discourage anyone from trying this flavour as well. In the end it is whatever works for you.
- anyonecancode 3y agoVim, the program, I find useful in limited cases. Vim, the keybindings, I find I try to use everywhere -- from the browser to every IDE I ever work in.
- psadauskas 3y agoI’ve felt similarly, and really wanted to switch to VSCode. But it gives each pane its own set of tabs, while Vim has a single set of “tabs” (buffers) and multiple panes within it. I’ve been using N/Vim for 25 years, and even after trying for a week or two, I just can’t get comfortable with VSCode’s way of doing it. https://github.com/microsoft/vscode/issues/143024 https://github.com/microsoft/vscode/issues/143024
- JeremyNT 3y agoI find the same. Vim has some core concepts that are unique and (for those of us who adopt them) very sticky. My entire career has been spent trying out IDEs every few years in hope of switching, dating back to Eclipse. I always try their vim modes too. But the reality is that the core editing experience in vim is so central to how I work that I can never manage it. I like features, and I have no love for arcane configuration of plugins. Yet to this day I've found nothing better for me than vim.
- erebearalte 3y agoI think learning vim was very worthwhile for me cause I now use vim bindings if it's supported, but yeah vscode was getting slower for me the past few months and I decided to try neovim again and man so many things have changed since the last time I tried it with the new Lua config. I feel like it'll take me a day to recreate a config im satisfied with and it'll probably have a few bugs too after using it for a while.
- smarx007 3y agoJust tried today to switch from Vim to Neovim as my EDITOR when I work over SSH (I use VS Code otherwise, I know about its SSH capabilities but don’t use them to edit just one file). Result: had to add a PPA on my Ubuntu server (not ideal but OK), most plugins require nvim 0.8+. Switched to the unstable PPA (because the stable PPA ships 0.7), turns out it doesn’t ship the latest release but instead a nightly dev build. While editing Lua configs of Neovim, I tried to use ‘micro’ just for fun. Result: my new EDITOR and GIT_EDITOR (that I previously set for +startinsert) are now set to ‘micro’. Alt+/ for commenting code, sane shortcuts, and code highlighting cover 90% of my needs.
- myth2018 3y agoMy experience with vim differs drastically and I believe the root of most problems you had stems from trying to turn vim into an IDE. I won't argue at all. If you prefer IDEs, you go for it. But maybe vim and neovim aren't the best choices. I use vim as a text editing tool, solely. My .vimrc contains ~ 20 lines. Use 2 popular plugins to help me finding and opening files, and one plugin to support editorconfigs (useful for sharing formatting rules with folks using vscode in the team). And I use makefiles or other scripts to call external tools (formatters, linters etc). There's probably a billion of plugins which could increment my productivity, but honestly I don't care much.
- conor- 3y ago> In the meantime, I can just Ctrl+P and install what I need in vscode and be on my way in a few minutes. Vim's built-in package management means all my plugins are stored as git submodules that are installed alongside my configs. I don't have to remember what extensions I have and Ctrl + P and install them one at a time. VSCode's settings.json and extension-level configuration is also extremely cumbersome. You're paying a time tax no matter what tools you're using if you want to customize them to fit your workflow. Personally I'd rather pay that tax 1 time with Vim and then carry the same setup with me to any PC than have to eat that cost every time I need to configure VSCode on a new machine.
- klardotsh 3y agothis is basically why I moved to https://github.com/helix-editor/helix/ https://github.com/helix-editor/helix/ for most things. neovim setup is a nightmare these days. 0.5 introducing Lua was both great (yay! vimscript sucks!) and horrible (oh no, everyone took this power and made a full operating system worth of complex stuff out of it that rarely fits together cohesively, and it all updates so frequently now that I can't keep up) I don't actually think it's Lua's fault. And I don't necessarily want to jump and say "the improved accessibility of this thing turned it into an unusable circus", because that's both unnecessarily sassy and also likely prescribing blame in some places it doesn't fully belong. But there's something that tidally changed in that time, and especially in the past 2-3 years, my vim setup became a thing I dreaded updating (because it would 100% guaranteed, every time, break something about my workflow)
- gloosx 3y agoI wonder why people are asking Google search like they would ask a person? Just googling "black nvim" yields a correct result (project repository) where you can follow the lines to get it installed/configured in a minute. Why would someone ask "How do I set up Black with neovim to format my Python files on save?", hit the reddit/quora/another obscure forum where he finds some hostile people who doesn't well explain to him how to set up black with neovim to format for his python files on save. DAMN. Just type in "black nvim", hit return and head to repository boy. There are genuine docs and installation instructions from the author, you don't need other people to explain it to you. Google is a search engine not an answer engine, so if you're looking for struggles instead of information you'll find it by inputting questions instead of indexes.