4 ms·
Inspired by these cool looking setups, I spent many days trying to setup a modern NeoVim setup, but ultimately failing to produce a really usable experience. I
by inDigiNeous 5y ago
Inspired by these cool looking setups, I spent many days trying to setup a modern NeoVim setup, but ultimately failing to produce a really usable experience.
I feel these really tuned out Vim/NeoVim setups are the modern equivalent of really tuned out Linux setups, as in they are something you can spend a lot of time working on and creating some very hacker like cool setups, but ultimately usability is not so great compared to a more full blown and integrated IDE like VSCode.
And I'm a hardcore VIM -user, dont' get me wrong, but making these configurations where you combine like 10-20 different plugins, it's gonna be a whole incoherent experience with many different thought paradigms colliding easily.
I do love the idea of having something working in Vim as perfectly as in VSCode for example, but the actual experience is not there. Ultimately things like C++ code completion and intellisense require a lot of work and code to get right, and NeoVim/Vim attempts are not there yet, for example I had to give up when the only way to figure out what compilation flags a project uses meant configuring it manually.
But they sure are cool for hacker-type setups and look cool for sure.
- feanaro 5y ago> Ultimately things like C++ code completion and intellisense require a lot of work and code to get right, and NeoVim/Vim attempts are not there yet, for example I had to give up when the only way to figure out what compilation flags a project uses meant configuring it manually. Not sure if I understand this right, but have you heard of https://github.com/rizsotto/Bear https://github.com/rizsotto/Bear? It intercepts compilation calls to generate a clang compilation database used by C and C++ LSP implementations. This way you just have to compile the project the normal way, only wrapping the initial call (for example, to `make`) with bear: `bear make`. Once you have the database, a LSP server like ccls should work out of the box with the project.
- inDigiNeous 5y agoHad not heard of this. I've tried two different autocompletion systems Coc and YouCompleteMe on vim, and both failed to make it automatical enough. Maybe if I had the time to figure out this Bear thing I would, but seriously VSCode already with vim -bindings works out of the box so why bother :)
- feanaro 5y agoYeah, it's definitely a matter of preference. For me, VS Code fails to be productive in a myriad of other ways which I cannot enumerate now because I always forget them, and vim is the productive powerhouse I know inside out, where everything makes sense. So due to this I had the will to investigate and make this work the first time, which was painful back in the day, but now it feels rather out-of-the-box and automatic, especially since nvim 0.5.0 was released. I still sometimes fire up VS Code when I get frustrated with something, but I always find something else broken there and go back to nvim. One thing I'm eyeing though is Onivim 2, though it's not ready yet.
- cbushko 5y agoI too had some fun getting a nice neovim setup going but in the end I just wanted to get work done instead. I settled on https://github.com/LunarVim/LunarVim https://github.com/LunarVim/LunarVim and then I customize my lv-config.lua with the extra pluggins/settings I want. I really like 99% of everything with VSCode except, 1) it kills my CPU and 2) the terminal experience is terrible. I spend all day in a shell and I want to move around quickly.
- zozbot234 5y agoThe problem with VsCode is that it's so GUI-dependent. It's no good for e.g. working remotely via SSH, or even for a lightweight, productivity-focused, low-distraction workflow. Really, we need a UX more like the old text-mode IDE's of Borland's "Turbo" and Microsoft's "Quick" series, complete with intuitive faux-GUI elements (menus, windows/frames, widgets) that could all be efficiently operated via keyboard navigation as opposed to the mouse. That would be cool-looking in a way that hackers can appreciate, while also being highly productive for day-to-day use.
- hnzix 5y agoSpacemacs runs in terminal mode.
- csomar 5y agoYou are doing it wrong. You start with a bare vim/neovim editor. Then you learn the basic keystrokes of vim and maybe adjust them a bit for your fingers. Then you add, for example, an autocompletion plugin or tool (there is COC.vim or native-LSP for neovim); then you add a theme; then you add a files explorer, etc... This is done over the course of a "few years". I understand this is not an instant solution like an IDE is, but Vim takes a lot investment in terms of muscle memory or configuration to finally have a setup that "fits you". Once that happens, that's where Vim/Linux/your-shell will "click". You can't fit a mass-consumer IDE to your style, you have to "fit in". That's not the case for these tools.
- cjaybo 5y agoPersonally, my needs when editing source code are not unique enough to be worth spending a "few years" fiddling with vim when at least 80% of my needs are covered out of the box with an IDE. Not to mention that I only spend a fraction of my development time actually writing and editing source code.
- zozbot234 5y agoYou're still "fitting in" to a workflow with Vim, and one that's arguably suboptimal if your setup would benefit from the kind of computer aid to software development that an IDE would provide out of the box. IDE's are not perfect by any means, but they're better than something that got started as a trivial 'visual' mode for ed (a line-based editor) to make it more useful on glass teletypes.
- csomar 5y agoWith coc.vim/Native-LSP I hardly feel the need for an "IDE" experience. I had troubles (and almost switched back) with autocompletion and syntax detection before LSP but now I think it's at par with most IDEs.
- lostmsu 5y agoCongrats on autocompletion and syntax! Now do visual debugging, safe refactoring, type and parameter name hints shown inline, and package management. The first 3 are used on daily basis, the last one maybe once a week.
- verall 5y agoI have a tuned-out linux (i3) setup and it really is my productivity superpower. I remember how much time I used to spend clicking between open applications, and now I am 2 macros from basically any open window. I think the important part is building up over years. When I tried to set something like this up all at once when I was young, but difficulty remembering anything made it get in the way. By adding incrementally, I get to understand each piece, and incremental pieces that aren't useful are forgotten. It certainly changes things as a C++/embedded dev using a custom build system. The Jetbrains ecosystem is not an option.