Skip to search
Skip to main content
Search in
Keyword
Title (keyword)
Author (keyword)
Subject (keyword)
Title starts with
Subject (browse)
Author (browse)
Author (sorted by title)
Call number (browse)
search for
Search
Advanced Search
Bookmarks
(
0
)
Princeton University Library Catalog
Start over
Cite
Send
to
SMS
Email
EndNote
RefWorks
RIS
Printer
Bookmark
Mastering Vim : Efficient and Effortless Editing with Vim and Vimscript / Ruslan Osipov.
Author
Osipov, Ruslan
[Browse]
Format
Book
Language
English
Εdition
Second edition.
Published/Created
Birmingham, England : Packt Publishing, [2024]
©2024
Description
1 online resource (300 pages)
Details
Subject(s)
Computer software
—
Development
[Browse]
Vim
[Browse]
Summary note
Discover what makes Vim one of the most popular text editors in the world, renowned for its blend of efficiency, customization, extensibility, and portability. With Mastering Vim, you’ll come to appreciate its extensive plugin system and seamless integration with various tools, which enable Vim to provide developers with an extensible and customizable development environment for programmers. This comprehensive guide to Vim will help you become more efficient at editing text: be it prose or code. Starting from the basics, advanced movement, and text operations, you’ll learn how Vim can be used as a full-fledged IDE. You’ll then progress to refactoring, debugging, building, testing, version control, plugins, and Vimscript through practical guidance. This second edition comes packed with fully revamped examples that are both engaging and easy to understand, complemented by drawings and diagrams that help to visualize the concepts covered in the book. Updated to cover Vim 9, this edition includes updated installation and troubleshooting instructions, along with examples in Vim9script. By the end of this Vim book, you’ll be well-versed in Vim and have the skills you need to build a complete application using this popular text editor.
Notes
Includes index.
Source of description
Description based on publisher supplied metadata and other sources.
Description based on print version record.
Contents
Cover
Title page
Copyright and credits
Dedication
Contributors
Table of Contents
Preface
Chapter 1: Getting Started
Technical requirements
A brief history lesson
Let's start a conversation (about modal interfaces)
Installation
Setting up on Linux and Unix-like systems
Setting up on macOS
Setting up on Windows
Setting up on ChromeOS
Verifying and troubleshooting the installation
Vanilla Vim versus gVim
Configuring Vim with your .vimrc
Common operations (or, how to exit Vim)
Opening files
Changing text
Saving and closing files
Moving around - talk to your editor
Making simple edits in insert mode
Persistent undo and repeat
Read the Vim manual using :help
Summary
Chapter 2: Advanced Editing and Navigation
Installing plugins
Organizing the workspace
Buffers
Plugin spotlight - unimpaired
Windows
Tabs
Folds
Navigating file trees
Netrw
:e with wildmenu enabled
Plugin spotlight - NERDTree
Plugin spotlight - Vinegar
Plugin spotlight - CtrlP
Navigating text
Jumping into insert mode
Searching with / and ?
Utilizing text objects
Plugin spotlight - EasyMotion
Copying and pasting with registers
Where do the registers come in?
Copying from outside of Vim
Chapter 3: Follow the Leader Plugin Management
Managing plugins
vim-plug
Alternatives to vim-plug
Profiling slow plugins
Deeper dive into modes
Normal mode
Command-line and ex modes
Insert mode
Visual and select modes
Replace and virtual replace modes
Terminal mode
Operator-pending mode (bonus)
Remapping commands
Mode - aware remapping
The leader key
Configuring plugins
Chapter 4: Understanding Structured Text
Technical requirements.
Code autocomplete
Built-in autocomplete
YouCompleteMe
Navigating the code base with tags
Exuberant Ctags
Automatically updating the tags
Visualizing the undo tree
Chapter 5: Build, Test, and Execute
Working with version control
A quick-and-dirty version control and Git introduction
Integrating Git with Vim (vim-fugitive)
Resolving conflicts with vimdiff
Comparing two files
vimdiff and Git
tmux, screen, and Vim terminal mode
tmux
Screen
Building and testing
Quickfix list
Location list
Building code
Testing code
Syntax checking code with linters
Chapter 6: Refactoring Code with Regex and Macros
Search or replace with regular expressions
Search and replace
Operations across files using arglist
Regex basics
More about magic
Applying the knowledge in practice
Recording and playing macros
Editing macros
Recursive macros
Running macros across multiple files
Using plugins to do the job
Chapter 7: Making Vim Your Own
Playing with the Vim UI
Color schemes
The status line
gVim-specific configuration
Keeping track of configuration files
Healthy Vim customization habits
Optimizing your workflow
Keeping .vimrc organized
Chapter 8: Transcending the Mundane with Vimscript
Why Vimscript?
How to execute Vimscript
Major changes in Vimscript 9
Learning the syntax
Setting variables
Surfacing output
Conditional statements
Lists
Dictionaries
Loops
Functions
Classes (Vim9script)
Lambda expressions
Map and filter
Interacting with Vim
File-related commands
Prompts
Using :help
A word about style guides
Let's build a plugin.
Plugin layout
The basics
Housekeeping
Improving our plugin
Distributing the plugin
Where to take the plugin from here
Further reading
Chapter 9: Where to Go from Here
Seven habits of effective text editing
Modal interfaces everywhere
A Vim-like web browsing experience
Vim everywhere else
Neovim
Why make another Vim?
Installing and configuring Neovim
Checking health
Sane defaults
Recommended reading and communities
Mailing lists
IRC
Other communities
Learning resources
A word about Uganda
Index.
Show 155 more Contents items
ISBN
9781835080436
OCLC
1451040922
Statement on language in description
Princeton University Library aims to describe library materials in a manner that is respectful to the individuals and communities who create, use, and are represented in the collections we manage.
Read more...
Other views
Staff view
Ask a Question
Suggest a Correction
Report Harmful Language
Supplementary Information