11 ms·
NvChad: An attempt to make Neovim TUI as functional as an IDE
- harryvederci 5y agoLooking good! I'm too invested in my own config, but will definitely look for some ideas to steal :) Random remark: lots of Dutch words contain "jk", so insert-remapping that to <ESC> can be quite confusing to some people.
- DiabloD3 5y agoI think people who are trying to turn Vim into an IDE entirely miss the point on why IDEs, generally, eat productivity, instead of produce productivity. That said, Telescope.nvim is a powerhouse of awesome. This guy did the right thing by making that the centerpiece of his config.
- mixedCase 5y agoEnlighten us, I am missing the point I guess. I'm way more productive with VS Code than Neovim until I fully configure Neovim to have syntax highlighting, LSP integration, file search and so many other plugins. I don't think IDEs eat productivity, my only gripes with them are resource consumption, which I can fix to a certain degree, and decentralization overhead, when the IDE is language-specific.
- lordleft 5y agoVS Code is kind of the ideal example of an IDE because it's not an IDE until you want it to be, in the precise ways you want it to be.
- DiabloD3 5y agoResource consumption and based around non-ergonomic setups is mostly why I've rejected IDEs as along as they've existed. If I want an IDE, I'll continue doing what I do: tmux, with vim in one or more panes, bash in one or more panes.
- renox 5y agoVScode sometimes shows me the wrong file for the function definition (very nasty also when it's the 'right' file from the wrong git worktree). Remote view loose all the opened tabs very often. Once, I suspected a bug in the logger due to truncated traces but it was VScode which truncated the line (nedit a very old editor didn't have this issue). Also I had regularly to ask my colleague to stop it's VScode because it was using >30GB of RAM, fortunately this doesn't happen anymore either VScode or its plugin is fixed or she has given up configuring as an IDE I don't know. And no CLion isn't better C++ IDEs sucks..
- etangent 5y agoHow do you open a grid with 6 files using keyboard only in your IDE? I assume it's possible.
- mixedCase 5y agoUsing the same exact commands as in Vim: `:vsplit` and `:split`
- davidkunz 5y agoIf someone is interested in using Neovim as an IDE (without pre-configured setups), I recorded a YouTube series: https://youtube.com/playlist?list=PLu-ydI-PCl0OEG0ZEqLRRuCrMJGAAI0tW https://youtube.com/playlist?list=PLu-ydI-PCl0OEG0ZEqLRRuCrM...
- 2wrist 5y agothanks for this.
- davidkunz 5y agoI'm glad you like it!
- nobleach 5y agoI clicked the link while thinking, "I wonder if these videos are as good as DevOnDuty's videos". Imagine my surprise. Thanks for making such high-quality content.
- davidkunz 5y agoWow thanks so much, that's so kind of you and it really made my day!
- nicolaslem 5y agoIt's hard for me to imagine anyone installing this project and using it. Even when picking and installing vim plugins one by one it's hard to remember what they all do and how to use them. I think it's better to see this project as an inspiration, like looking at someone else's dotfiles.
- davidkunz 5y agoYes, I agree with you. The installation of a plugin is the easy part. Properly configuring it to fit _your_ needs and remembering the commands is the hard part. No all-in-one setups can make this effort go away.
- rjzzleep 5y agoInteresting point. I think it has two sides to it: 1. I started using Spacemacs which got me into using Emacs(mainly for org mode in the beginning). I'm not capable of building an emacs config from scratch(nor do I care). 2. In Vim though I already have my vim config and have been customizing it. When I try to use these neovim distributions, they're very far off how I configured my vim and I have no idea how to reconcile these two things. I feel like once you are capable enough to configure it on your own, you won't really be happy with these things, but neovim is also almost like the ever changing javascript ecosystem. There are new completion engines coming out every day, new file trees, etc. etc. I don't feel like changing to the next best lsp engine every 6 months. Also, spacemacs seems to have a better hook mechanism when it comes to configuring the default configuration.
- memco 5y agoAs a counter point: most IDEs come with defaults for many things and offer the ability to customize. Whether it's better to have defaults that you have to override or have no pre-configured tools seems dependent on the user and the tool. I've personally been turned off by how much work it takes to get vim functional on the same level as my other tools and have often wished someone had put together a better starting point and explained how to integrate, extend and customize. I like that if I want to, I can build up from zero to a totally personalized vim setup, but I don't like that most of the time I have to start from zero and build a totally personalized setup.
- clearing 5y agoI'll be honest. I really like projects like these (Spacemacs is another one that comes to mind), I've been a Vim user for a decade or so. Now I use IntelliJ since I primarily work with Spring, but for other side projects or one-off tasks these setups are really cool. That being said, if this is intended to be widely adopted/viewed like Spacemacs, the marketing and presentation need a bit of work. Between the 'Chad' signifier and the screenshots sharing a color scheme with a tricked-out desktop and other terminal tabs, it's hard to tell if this is a serious standalone project or, to be frank, someone just showing off.
- cartesius13 5y ago>the 'Chad' signifier What do you mean by this?
- hoppyhoppy2 5y agoAlthough at first I wanted to give the benefit of the doubt by thinking maybe it was made by someone named Chad or whatever, the name of their newest release ("MegaChad") points toward it being a reference to Chad Thundercock, a fictional character in a series of 4chan memes popular among members of the "incel" community. Probably not something a "serious" or "professional" project would choose. https://knowyourmeme.com/memes/virgin-vs-chad https://knowyourmeme.com/memes/virgin-vs-chad https://knowyourmeme.com/memes/gigachad https://knowyourmeme.com/memes/gigachad
- ethelward 5y agoYeah, it has left the 4chan community and entered the mainstream quite some time ago; e.g. here (https://old.reddit.com/r/virginvschad/ https://old.reddit.com/r/virginvschad/), and it even has derivatives now (https://knowyourmeme.com/memes/swole-doge-vs-cheems https://knowyourmeme.com/memes/swole-doge-vs-cheems).
- cuddlybacon 5y agoYeah. It is general internet culture at this point.
- hkmaxpro 5y agoSimilar projects: LunarVim https://github.com/lunarvim/lunarvim https://github.com/lunarvim/lunarvim Doom Nvim https://github.com/NTBBloodbath/doom-nvim https://github.com/NTBBloodbath/doom-nvim
- gregf 5y agoI have really been enjoying the simplicity of lunarvim. Just the basics, add what I want extra.
- scelerat 5y agoI have been using LunarVim for the last couple of months. I will have to give Doom and NvChad a look as well. One thing I appreciate about lunarvim (in its latest iteration) is that it keeps all its settings sequestered from the neovim settings, launchable as 'lvim.' If I want a simpler editing experience with all the bells and whistles, I can still just use 'nvim'
- ahurmazda 5y agoBig fan and user of LunarVim (esp as a ol' vim fuddy duddy). I especially love the community aspect of it. Chris' youtubecasts routinely draw 20+ people. Lot of genuine excitement about tools. I understand neovim (or any other tool) requiring personal setup/configuration is not for everyone. And that is totally okay (see vscode, jetbrain etc). There are several alternatives and something for everyone out there.
- rubyn00bie 5y agoTangentially: What GUI (presumably some skin on Gnome or KDE) are they using in the screenshots? To be clear, I don't mean for NeoVIM, I just mean in general. It looks fucking sweet!
- mattrighetti 5y agoWas wondering the same
- soperj 5y agoI'd also like to know.
- hkmaxpro 5y agobspwm See https://github.com/siduck76/dotfiles https://github.com/siduck76/dotfiles and https://github.com/NvChad/NvChad/issues/22#issuecomment-813844679 https://github.com/NvChad/NvChad/issues/22#issuecomment-8138...
- soperj 5y agothank you!
- tomchuk 5y agoLooks like the author is running BSPWM, their configuration (in their dotfiles repo) is available here: https://github.com/siduck76/dotfiles/blob/master/thinkpad/bspwm/bspwmrc https://github.com/siduck76/dotfiles/blob/master/thinkpad/bs...
- pelagicAustral 5y ago> An attempt to make Neovim CLI as functional as an IDE So, like a vegan burger.
- KitDuncan 5y agoTell me you never had a vegan burger without telling me you never had a vegan burger.
- skrtskrt 5y agoI have spent plenty of time tuning up NeoVim and I really enjoy the text editing experience, but the IDE-like experience is still so, so far from the out-of-the box capabilities of a JetBrains product: * visual debugging - cli debugging could simply never come close, not matter how much you love using a keyboard over a mouse * hyper-powerful refactoring, well beyond what any of these language server plugins currently provide: rename file and have all imports corrected, extract class or function to different file and again have all imports corrected, etc. * Out of the box using the interpreter or compiler from the docker-compose stack - everyone on the team instantly has an identical development environment * Attaching the visual debugger to your app running in a docker-compose stack The list goes on and on. I would love to feel like the "real developer" trope by using only the terminal tools stitched together by endless config and scripts and whatnot, but the hit to productivity is impossible to justify. I just want to build software.
- davidkunz 5y ago> visual debugging - cli debugging could simply never come close, not matter how much you love using a keyboard over a mouse Have you had a look at nvim-dap? It's awesome and I have a much better debugging experience than in VSCode/JetBrains (as it's completely keyboard driven). Have a look: https://youtu.be/SIYt1dopfTc https://youtu.be/SIYt1dopfTc
- scns 5y agoWhoa holy flying spaghetti monster!
- ilrwbwrkhv 5y agoWhat is visual debugging. Isn't it still just looking at variables etc?
- linspace 5y agoVisual debugging in my experience is automatically jumping through the source files inside the editor. Which is nicer than asking the debugger to show 10 lines around the current line. There are some attempts like DDD that I think are not very popular. Edit: also showing variable values while hovering with the mouse. Also, I forgot that Dr Racket can show you the call stack graphically connecting different source lines
- ahnick 5y agoIf you are going to go down the vim as an IDE path, wouldn't you just use Onivim? (https://v2.onivim.io/ https://v2.onivim.io/) Or is the licensing the issue?
- Jamustico 5y agoThere is no reason to use onivim when there's Vscode and Vim plugins for it.
- leppr 5y agoLast I tried the VScode Vim plugins all had some lag that made it annoying to use, while Onivim was responsive. It's not something inherent to vim emulation though, the Jetbrains or Visual Studio plugins were good, so it's possible this is now fixed.
- leppr 5y agoI just tried the latest VSCode Vim plugin version and it still forgets the cursor column when moving through uneven lines [1]. That's basic functionality, so I wouldn't call the VSCode plugin a viable alternative to a proper Vim-based editor and I doubt it'll ever be since the issue is open from 2017. [1]: https://github.com/VSCodeVim/Vim/issues/1323 https://github.com/VSCodeVim/Vim/issues/1323
- caslon 5y ago>forced graphical >ugly graphical at that >Javascript extensions >no Lua extensions That is all around a terrible idea, made even worse by the fact that it's proprietary software.
- Jamustico 5y agoUsing someone else's configurations kinda defeats the purpose. You should adapt Vim to your needs, not yourself to other people's needs. That being said, these types of projects are nice to get inspired to change your Vim config.
- setr 5y ago> Using someone else's configurations kinda defeats the purpose. No it doesn't. Vim itself is just a set of someone else's configurations. The important thing is that someone else's configurations can eventually become your configurations, but there's absolutely no reason to "start from scratch" unless you're particularly idiosyncratic. Good artists copy, great artists steal. Bad artists do neither.
- peakaboo 5y agoI always start from scratch. The reason is, I know what every single line does because I put it there.
- joiguru 5y agoI did the same, for the last 10 years. And now I don't remember 90% of what I did.
- scns 5y agoHave to disagree. Great artists only listen to their inner voice and create something timeless and unique [edit]that touches its recipients deeply[/edit] IM(not so humble [edit] since i can be an arrogant ass[/edit])O.
- alpaca128 5y agoHere's a reason to start from scratch: You don't need to dig through the complex, customized setup of someone else and figure it all out. You also don't need to learn unfamiliar software without even knowing what parts are integrated by default and what's customized. Starting from a clean setup means I know exactly what every part of my configuration does. I can still use a default Vim setup on a server because I started from that and added every change myself step by step as I learned new things about the editor. > Good artists copy, great artists steal. Bad artists do neither. The "stealing" part of that phrase, in its original meaning, implies deep understanding of what's being acquired. So, basically an extension of what I was just describing. Also I'd call Vim more a tool than art.
- maxnoe 5y agoNitpick: This is not CLI, right? This is TUI. Reading the headline I thought this was about using nvim as a command line tool as opposed to an interactive editor (e.g. as a sed replacement). CLI (Command Line Interface) means to me means the options / arguments / flags of calling a single command. This is about a specific nvim configuration (or set of plugins) to make nvim a powerful TUI (terminal user interface) IDE
- dang 5y agoOk, we've s/CLI/TUI/'d the title above. Thanks!
- UI_at_80x24 5y agoYes you are correct. A lot of people might think that TUI "requires" some kind of decorations like ncurses offer, had the headline referred to this as a CLI application/program then we could accept it, but this is strictly speaking a TUI.
- inDigiNeous 5y agoInspired 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 :)
- Shadonototro 5y agoas functional as an IDE? X doubt how do you debug your native program?
- denton-scratch 5y agoI'm inspired to investigate Neovim; I'll do it tomorrow. I don't need an IDE; I just want a good editor that I can use over an SSH connection. GUIs are groovy when you have one; but sometimes you are constrained to working without one.
- qudat 5y agoneovim is in a honeymoon phase with the recent release of v0.5. Ive been maintaining a search directory site as a hobby https://neovimcraft.com https://neovimcraft.com and every couple of days there are a handful of new plugins to add to it. Now is the time to give neovim a shot!
- tjxp 5y agoDude, that looks beautiful. I'm going to dig into getting that set up in WSL first thing Monday. I've been using IntelliJ Projector when I'm developing in Windows lately. It is awesome, but it gets a little bit glitchy.