How to Do 90% of What Plugins Do (With Just Vim)
thoughtbot10 HN recommenders · 2016–2025
990K views · talk · evergreen · Uploaded 2016-10-05
A thoughtbot meetup talk by Max Cantor on getting most of what popular plugins provide using only built-in Vim features. It covers autocomplete, file jumping, filesystem navigation, build integration and snippets, with slides and a vimrc available.
HN treats it as the canonical talk for the case that vanilla Vim goes a long way and plugin dependencies are a burden.
38:47RailsConf 2014 - All the Little Things by Sandi Metz
Confreaks
40:20"Testing Distributed Systems w/ Deterministic Simulation" by Will Wilson
Strange Loop Conference
1:03:55🚀 TDD, Where Did It All Go Wrong (Ian Cooper)
DevTernity Conference
54:20Bret Victor - Inventing on Principle
Rui Oliveira
1:02:26Solving Problems the Clojure Way - Rafal Dittwald
Clojure/north
52:35Debugging Under Fire: Keep your Head when Systems have Lost their Mind • Bryan Cantrill • GOTO 2017
GOTO Conferences
42:15"Performance Matters" by Emery Berger
Strange Loop Conference
23:16A Tour of the Acme Editor
Russ Cox
14 comments from Hacker News
Use the editor that works best for you. I have used Vim every day for almost the last two years and I have learned to work very quickly inside of it. As far as plugins, if one sounds interesting or useful to you, install it. If it doesn't work out, then you can delete it later. Over the years I have tried all of the popular plugins, but I have managed to whittle it down to 4 plus a couple of language specific plugins Here are a couple of handy youtube videos Vim Navigation Commands [LINK] How to Do 90% of What Plugins Do (With Just Vim) [VIDEO]
I don't believe it's possible to have a good vimrc without really grasping some elementary concepts like movements, operators, registers, windows etc. I have recently watched all the Drew Neil's VimCasts[1] and after just a couple of hours I've realized I was missing a lot for at least 10 years. There is also quite a good presentation on YouTube by Max Cantor "How to Do 90% of What Plugins Do (With Just Vim)"[2]. Instead of treating a single vimrc as the best one it's useful to skim through dotfiles and plugins of some influential vim users like Drew Neil[3] and Tim Pope[4]. BTW VimCasts are accompanied by a book. The second edition[5] includes changes introduced by Vim 8.0. [1]: [LINK] [2]: [VIDEO] [3]: [LINK] [4]: [LINK] [5]: [LINK]
I used to use bufftabline, [LINK] . I think something like it is what you're looking for? If it's not quite right for you the readme in the github repo mentions some other plugins that have similar capabilities. I really liked bufftabline when I used it. It was lightweight and did exactly what I wanted it to do, give me an immediate visual representation of the buffers I had open in a familiar tab-like format. Eventually I moved towards an even lighter weight setup. Take at look at this video is you're interested in anything like that. [VIDEO]
I like that the intro paragraph discusses the pros and cons of vanilla vs plugins. For those that want to take a look at some more vanilla approaches to some common tasks, Max Cantor has a great talk about that on YouTube [0]. [0]: [VIDEO]
Let's get this out of the way: "How to Do 90% of What Plugins Do (With Just Vim)": [VIDEO] And if you want to see some crazy vim usage, there's always Damian Conway: [LINK]
some languages are more verbose than others. if you're dealing with `ProblemProblemFactory` type of abstraction madness and subscribe to the idea of spelling out every variable (MessageCounter instead of "cnt" etc) then this would seem handy. Maybe it's a question of mindset & philosophy. I personally prefer a minimalist but powerful editor without plugins and just rely on their internal capabilities (which granted are a learning curve). It avoids getting stuck when doing $EDITOR foo on a system you don't own and still feel at home and as fast as on your primary workspace. "How to Do 90% of What Plugins Do (With Just Vim)" : [VIDEO]
>The killer feature of vim that I feel like very few people know about is it's remote editor feature. Now this is dope, I used to rely on a trick I discovered in a conference[0], append to the `path` variable in your .vimrc so you can recursively fuzzy find files in the directory where you opened Vim, and more recently setting global marks[1] in the files of interest. 0: [VIDEO] 1: [LINK]
>99% of my plugin usage is fzf Even that can be handled by Vim ootb, just add path+=** to your vimrc and you're set, you can recursively :find pretty much anything in the folder where you opened Vim and you can even go fuzzy, for how it works in practice: [VIDEO]
Vim has built-in auto completion, for some languages (Python, C, ...) it can even be kind of smart. There are many videos showcasing the power of vanilla Vim [VIDEO] [LINK]
The thoughtbot series on vim is great. I'm really glad I found this video early in my Vim career. I've got a very minimal vimrc as a result and just try to lean into the vim builtins [VIDEO]
Am I the only one using vanilla vim with a minimal configuration file (<50 lines)? I set tabs to 4 spaces, put syntax highlighting on, set background to dark, add fuzzy finding, and configure netrw (default file browsing). Very easy to setup. Moreover, when I'm on a different computer and open (vanilla) vim without any configurations. I know that everything is more or less the same as my default vim environment. I think it's not that hard to learn developing in the default vim environment, with some minor tweaks. Also related, How to Do 90% of What Plugins Do (With Just Vim): [VIDEO]
I use vim with ctags. vim has good autocomplete but I don't use it much -- I rely on memory and looking things up in the docs. With ctags I can jump to definition/implementation of a function. ctags has worked since the early 1990s. Check out this video: How to do 90% of what plugins do with just vim. [VIDEO]
> The ability to autocomplete, and navigate through the code (even my dependencies's code) by the click on a function, the popover showing the documentation/signature of the function i'm going to call. Those are Quality of Life features I'm not ready to give up on. ctags did most of that decades ago. Plain vim has good autocomplete and signature popovers, along with navigating to functions and class definitions. No LSP needed. An LSP will do it better but with sometimes significant overhead. As I noted I don't use VSCode or a JetBrains IDE. I know about them and have used them. My setup works language-agnostic, and I also work in multiple languages. Possibly useful, at least interesting: [VIDEO]
With editors like vim, neovim, emacs, it's way easier to get the lay of the land first (tutorial, play around with the default config,..) and then list out what you need. My vim config has three things only: LSP, FZF (for anything fuzzy), and Plug (to install the above two). There's also a few niceties, but I could do without them. or vendor them into the main config. But it's not my daily editor, so that's just the base config. Anything I could add on top of that would depend on the projects I would need it for. That's about 200 lines (the lsp config is 1/4 of that) NB. A nice talk even if it's about vim "How to Do 90% of What Plugins Do (With Just Vim)" [VIDEO]