It sounds like you’re diving into "Modern Vim" by Drew Neil. It’s widely considered the "sequel" to his classic Practical Vim and is a fantastic resource for anyone looking to bridge the gap between a basic text editor and a full-blown Integrated Development Environment (IDE).
Since the book covers the transition to Vim 8 and Neovim, it focuses heavily on the features that modernized the ecosystem, such as asynchronous execution and the built-in terminal.
Core Themes of the Book
The book focuses on several "modern" pillars that changed how we use Vim:
Asynchronous Workflows: Leveraging jobs and channels so that plugins (like linters or testers) can run in the background without freezing your UI.
The Built-in Terminal: How to use
:terminalto manage your shell, compilers, and REPLs directly inside a Vim buffer.Package Management: Moving away from complex third-party managers to the native
pack/directory structure introduced in Vim 8.1 Language Server Protocol (LSP): While the book was written just as LSP was taking off, it sets the stage for how Neovim, in particular, uses external servers to provide IDE-level autocompletion and go-to-definition.
Key Takeaways for Your Config
If you are working through this book today, here are three high-impact areas to focus on:
Switching to Lua (Neovim Users): While the book covers Vimscript, if you are using Neovim, most of the modern community has shifted to
init.lua. The concepts Drew Neil teaches (like buffers, windows, and tabs) remain the same, but the syntax is much faster.Plugin Minimalism: The book encourages using native features first. Before installing a "File Explorer" plugin, see if you can master
netrwor the:findcommand.Fuzzy Finding: One of the biggest productivity leaps is integrating a fuzzy finder (like
fzfortelescope.nvim) to navigate files instead of manual directory browsing.
Comparison: Vim 8 vs. Neovim
The book does a great job of showing how they diverged and where they still meet:
| Feature | Vim 8+ | Neovim |
| Configuration | ~/.vimrc (Vimscript) | init.lua or init.vim |
| Async Support | Jobs and Channels | RPC-based Job control |
| Terminal | Solid built-in support | Highly integrated terminal buffers |
| LSP | Requires plugins (e.g., ALE, vim-lsp) | Built-in LSP client |
Recommended "Modern" Stack
If you are building your environment today based on the book's philosophy, I’d suggest looking into:
Package Manager:
lazy.nvim(for Neovim) orminpac(for Vim 8).2 LSP:
nvim-lspconfigto get that VS Code-like intelligence.Navigation:
Telescopefor fuzzy finding everything.3
Are you currently trying to migrate an old .vimrc to a more modern setup, or are you starting a fresh configuration from scratch? I can help you translate any of the book's Vimscript examples into Lua if you're using Neovim.
.jpg)
0 Comments