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.
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.
Author(s): Drew Neil
Publisher: The Pragmatic Bookshelf, LLC
Year: 2018
Acknowledgments
Introduction
- 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
- 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
Sessions
- 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