Turn Vim into a full-blown development environment using Vim 8’s new features and this sequel to the beloved bestseller Practical Vim. Integrate your editor with tools for building, testing, linting, indexing, and searching your codebase. Discover the future of Vim with Neovim: a fork of Vim that includes a built-in terminal emulator that will transform your workflow. Whether you choose to switch to Neovim or stick with Vim 8, you’ll be a better developer.
Modern Vim: Craft Your Development Environment with Vim 8 and Neovim
by Drew Neil
Craft Your Development Environment with Vim 8 and Neovim
by Drew Neil
I’m once again impressed by the limitless possibilities of this classic editor. It goes without saying that I would—and will—recommend Modern Vim to anyone using Vim, including admins, developers, and Linux enthusiasts.
- Tibor Simic
Software Developer, Ingemark
With Practical Vim I am able to move around my text like a kangaroo. Modern Vim puts a Swiss Army knife into my pouch.
- Miroslav Šedivý
Software Architect, UBIMET GmbH
Even as an experienced Vim user and plugin author, I learned a lot with this book.
- Kassio Borges
Senior Software Engineer, author of the Neoterm plugin, Zendesk
If you’re curious as to what’s new in Vim 8 and Neovim, or looking to extend the collection of great recipes started in Practical Vim, this book is an excellent resource.
- Eric Casteleijn
About this Title
Release: P1.0 (2018-05-01)
A serious tool for programmers and web developers, no other text editor comes close to Vim for speed and efficiency. Make Vim the centerpiece of a Unix-based IDE as you discover new ways to work with Vim 8 and Neovim in 28 hands-on tips.
Execute tasks asynchronously, allowing you to continue in Vim while linting, grepping, building a project, or running a test suite. Install plugins to be loaded on startup—or on-demand when you need them—with Vim 8’s new package support. Save and restore sessions, enabling you to quit Vim and restart again while preserving your window layout and undo history. Use Neovim as a drop-in replacement for Vim—it supports all of the features Vim 8 offers and more, including an integrated terminal that lets you quickly perform interactive commands. And if you enjoy using tmux and Vim together, you’ll love Neovim’s terminal emulator, which lets you run an interactive shell in a buffer. The terminal buffers fit naturally with Vim’s split windows, and you can use Normal mode commands to scroll, search, copy, and paste. On top of all that: Neovim’s terminal buffers are scriptable.
With Vim at the core of your development environment, you’ll become a faster and more efficient developer.
What You Need
You’ll need a Unix-based environment and an up-to-date release of Vim (8.0 or newer). For the tips about running a terminal emulator, you’ll need to install Neovim.
Contents & Extracts
- How This Book Is Structured
- A Note on Vim Versions
- Other Software Requirements
- Notation for Simulating Vim on the Page
- Minimal Configuration
- Using Factory Settings
- Downloading the Examples
- Get Modern Vim
- Upgrade to Vim 8
- Switch to Neovim
- Use Both
- Switching to Neovim
- Enabling Python Support in Neovim
- Installing Plugins
- Understanding Scripts, Plugins, and Packages
- Installing Plugins to Your Package
- Managing Plugins with minpac
- Opening Files
- Finding Files Using Fuzzy Path Matching
- Finding Files Semantically
- Jumping to an Alternate File
- Working with the Quickfix List
- Running a Build and Navigating Failures
- Switching Compilers
- Linting the Current File
- Searching Files with Grep-Alikes
- Running Tests and Browsing Failures
- Neovim’s Built-In Terminal Emulator extract
- Use Normal Mode Commands to Interact with the Shell
- Use Neovim as a Window Manager
- Control Processes Remotely with Vim Script
- Grokking Terminal Mode
- Running Programs in a Terminal Buffer
- Managing Windows That Contain Terminal Buffers
- Using Normal Mode Commands in a Terminal Buffer
- Sending Commands to a Terminal Buffer
- Applying Customizations to Your Shell in a Terminal Buffer
- Avoiding Nested Neovim Instances
- Using an Existing nvim Instance as the Preferred Editor
- Make Restarting Vim Frictionless
- Make Switching Projects Frictionless
- Saving and Restoring Sessions
- Making Undo Persist Between Sessions
- Restarting Terminal Processes When Resuming a Session
- Configuring Vim
- Using Autocommands to Respond to Events
- Respecting Project Conventions
- Setting Buffer-Local Configuration Per Project
- What’s Next for Modern Vim?
- Integrating with the Language Server Protocol
- What’s Next for Vim 8
- What’s Next for Neovim
Drew Neil is a programmer, trainer, and entrepreneur. He runs Studio Nelstrom, which specializes in making educational screencasts. At vimcasts.org he publishes articles and video tutorials about Vim.