We may earn an affiliate commission when you visit our partners.
Course image
Jason Cannon

Did you know that the most productive command line experts exploit the powerful features of the Vim text editor?

Read more

Did you know that the most productive command line experts exploit the powerful features of the Vim text editor?

The problem is that if you want to get really good with Vim it can take you an extremely long time if you're trying to learn it on your own.

That's why the Vim Masterclass was created.

This course gives you the absolute shortest path to learning the basics. It also provides you the fastest way to learn the most advanced features, too.

By the time you finish the Vim Masterclass you'll know how to:

  • Work with multiple files, including how to move data back and forth between different files, copying & pasting from one file to another, and quickly jumping to another file. You'll also learn how to view multiple files at the same time using Vim's windowing system.

  • Use the must-know keyboard shortcuts and how to remember them easily. You'll actually learn how to "think in Vim" so you don't even have to memorize each and every command, saving you countless hours of work.

  • Find and replace entire blocks of information within a file. That includes how to refactor your code by renaming all variables in a file or set of files, reliably. Of course, you'll learn simple find and replace techniques to replace a word in an entire file and much more.

  • Cut, copy and paste. You'll find out how to make the most of Vim's built-in clipboard system, use Vim's clipboard history, and how to access your system's clipboard from within Vim.

  • Visually select blocks of text and perform edits on those blocks like moving the block, deleting the block, indenting/shifting the block, and more. You'll understand Vim's text objects so you can quickly select single or multiple words, lines, paragraphs, HTML/XML tags, code blocks, and more.

  • How to make vertical edits and use Vim's Visual Block Mode. (Some call this column editing mode or rectangle mode…)

  • Enable syntax highlighting for source code, configuration files, or any type of file you edit often. That includes how to customize the color scheme and color code text in Vim.

  • Employ simple to advanced navigation techniques so you can go exactly to where you need in a file very fast.

  • Practical application tips such as how to edit source code, scripts, HTML, and more. You'll find lots of opportunities for practice in this course.

  • Make the most of the built-in help system to quickly find what you need, all without leaving Vim.
  • Use MacVim and gVim on Linux and Windows. This includes learning the advantages and disadvantages of both the textual interface and the graphical interfaces to Vim.

  • Create, save, and replay macros to normalize data and quickly repeat complicated edits. You'll learn how to append or prepend text to every line in a text file, how to format one line of text and apply that formatting to a specified area in the file and more. In short, you'll learn how to automate everything in Vim.

  • Create custom shortcuts and personalized key mappings. If you want to create a shortcut for something you do often, you'll find out how to make your life a whole lot easier.

  • Indent and shift blocks of text. You'll also learn how to enable auto indentation so you can quickly clean up and prettify your source code.

  • And more...

When you start the course, you'll be able to use vim almost immediately. I want to make sure you get up and running as quickly as possible. That's why at the beginning of the course you'll learn how to start vim, how to make simple edits, and how to save your changes.

After that, we'll build on your knowledge and even get into some really advanced techniques such as editing multiple files at once, creating macros, making global substitutions in many files at the same time, ways to format and normalize data, how to "think in vim", and much more.

Having taught thousands of students over the years, I know people learn best by doing. That's why I've packed this course with tons of practice exercises. For each exercise you, get detailed, step-by-step instructions. I encourage you to try the labs on your own first. Then I walk through the exercise while you look over my shoulder.

Not only will you learn the concepts, you'll watch me demonstrate how to put those concepts to good use, and you'll practice those new skills immediately so that you really understand and retain what you're learning.

This course is ideal for anyone who works on the command line often. Whether you're a system administrator, a developer, a database administrator, or anyone else who has to edit files in a command line environment, this course is for you.

Even though this course does cover the graphical version of vim, it is NOT for people who are looking for "what you see is what you get" (WYSIWYG) word processing help.

No, this course is for people who want to get really efficient at editing plain text files, such as server configuration files, shell scripts, source code, and any other type of textual data.

So, if you're tired of being scared of vim, or just aren't making the progress you'd hope to by just dabbling in vim, it's time to take your vim skills to the next level by enrolling in this course.

Enroll Now.

Enroll now

What's inside

Learning objective

Edit plain text files quickly and efficiently using the vim text editor.

Syllabus

Course Introduction

In this lesson you will be introduced to some of the topics that you will learn in the Vim Masterclass course.

Download the demonstration example files, practice exercise instructions, and the files required to complete the Vim practice exercises.

Read more

Here is why you should use the Vi or Vim editor instead of any other editors such as Emacs or Nano.

Vim Quickstart

In this lesson, you will be introduced to the various vi/vim modes.

In this lesson you will learn how to:

  • Start vim

  • Exit vim / quit vim

  • Create a new file

  • Edit an existing file

  • Save a file


The goal of this exercise is to practice creating files and editing them using the vim editor.  You'll also practice changing between the normal mode, insert mode, and command mode.  During this practice exercise you will create a new file with vim, insert some text into that file, and save it.

This is a demonstration of how to create files and edit them using the vim editor.  How to change between normal mode, insert mode, and command mode are demonstrated.  Also, how to create a new file with vim, insert some text into that file, and save it is demonstrated.

Vim Essentials

In this lesson, you will learn the most import and essential file navigation commands used with the vim editor.

Vim commands covered include:

  • Home row file navigation:

    • h (Left)

    • i (Right)

    • j (Down)

    • k (Up)

  • Arrow key navigation

  • Ctrl-F (Page down) (Forward)

  • Ctrl-B (Page up) (Backward)

  • w command

  • W command

  • b command

  • B command

  • z <ENTER>

  • 0 command

  • ^ command

  • $ command

  • goto line:

    • Ngg

      • Example: 2gg

    • NG

      • Example: 2G

  • gg vs GG command

  • And more...

Learn how to navigate inside a file using the vi or vim editor.

A demonstration of how to navigate inside a file using the vi or vim editor.

In this lesson, you will learn how to delete text using the vim editor.

The goal of this exercise is to practice deleting text in a file using vi/vim.

The Vim Help System

In this lesson, you will learn how to use the built-in Vim help system to become self-sufficient.

The goal of this exercise is to get experience using the built-in vim help system.

Deleting, Yanking, and Putting

In this Vim editor lesson you will learn how to:

  • Move text around in a file

  • Duplicate text

  • Make an in-file backup

  • Reuse the same text

  • And more...

In this lesson, you will learn about vi and vim registers.

You'll learn the various Vim register types including:

  • Unnamed

  • Named

  • Numbered

You'll also learn about the following vi/vim terminology:

  • cut, copy, paste

  • delete, yank, put

  • registers

And more...

The goal of this exercise is to give you practice with cut, copy, and paste operations. Additionally, you'll get a chance to work with vim registers.

Transforming and Substituting Text

Learn the vim insert, change, replace functions/commands.

Learn how to quickly find and replace text using the Vim editor.

The goal of this exercise is to give you practice with the different ways to insert, change, replace, and join text in Vim.

The goal of this exercise is to practice searching, finding, and replacing text within a file using Vim.

Text Objects and Macros

Learn how to become even more efficient in Vim by editing in larger logical chunks. You'll learn how to use Vim's text objects to increase your editing speed. You'll learn how to operate on:

  • Words

  • Sentences

  • Paragraphs

  • Code blocks

The goal of this exercise is to familiarize yourself with Vim's text objects.

In this lesson you will learn how to create and use macros in Vim.

The goal of this exercise is to practice creating and using macros in Vim.

Visual Mode

Learn how to use Vim's visual mode.

The goal of this exercise is to practice using Vim's visual mode.

Vim Settings, Preferences, and Customizations

Learn how to make Vim start with your favorite options and settings by configuring the vimrc file.

The goal of this exercise is to create your own vimrc file with your own desired customizations.

Vim Buffers and Windows

In this lesson you will learn how to edit or view multiple files at once in Vim. Plus, you'll learn what Vim buffers are and how to manage them.

The goal of this exercise is to give you practice working with multiple Vim buffers.

Learn how to view multiple files at once using windows in Vim. You'll learn how to split your window vertically and horizontally. Plus, you'll learn how to create complex window layouts.

Vim Plugins

Learn how to find, install, and use Vim plugins. (NOTE: This procedure works for Neovim as well.)

Plugins covered in this lesson include:

  • NERDTree

  • Ctrlp

  • Tabular

  • EasyMotion

  • Git Fugitive

Vim Graphical User Interfaces: Gvim and MacVim

In this lesson, you'll learn how to use the graphical (GUI) version of Vim, called gvim.

Live Q&A Calls
Live Q&A Call #1
Live Q&A Call #2
Bonus Section

The contents of this lecture are so secret I'm not even allowed to describe it! Open, if you dare.

Good to know

Know what's good
, what to watch for
, and possible dealbreakers
Develops foundational skills and expertise in Vim, which is a standard text editor in software development and systems administration
Taught by Jason Cannon, a recognized expert in the use of the Vim text editor
Examines a variety of advanced techniques for editing plain text files, including macros, plugins, and multiple file/window editing
Covers a comprehensive range of topics, including navigation, searching, and replacing text, as well as working with multiple files and windows
Offers hands-on practice exercises and demonstrations to reinforce learning
May require some prior experience with command-line interfaces and text editors

Save this course

Save Vim Masterclass to your list so you can find it easily later:
Save

Reviews summary

Vim fundamentals

According to students, Vim Masterclass offers a solid grounding in the fundamentals of Vim. Learners say it's a good place to start, especially for those with no prior experience in Vim. While some students felt the course could go into more depth, most said it met their expectations.
Course is a good length.
"It was great but left me wanting vim scripting. Perhaps I know enough to get started."
Good place to start learning Vim.
"I used to be fairly good at TECO macros, then FINE and some follow on to FINE I can't remember. Windows made me lazy. :("

Activities

Be better prepared before your course. Deepen your understanding during and after it. Supplement your coursework and achieve mastery of the topics covered in Vim Masterclass with these activities:
Create a cheat sheet of Vim commands
Creating a cheat sheet of Vim commands will help you remember the most important commands and make them easily accessible for quick reference.
Show steps
  • Create a new text file.
  • List all the Vim commands you know.
  • Organize the commands into categories, such as navigation, editing, and searching.
  • Print out the cheat sheet or save it to your computer.
Create a Vim configuration file
Creating a Vim configuration file will help you customize Vim to your own preferences and make it more efficient for your workflow.
Show steps
  • Create a new file called .vimrc in your home directory.
  • Add your custom settings to the .vimrc file.
  • Test your changes by opening Vim.
Create a collection of Vim resources
Creating a collection of Vim resources will help you organize and access the resources that you need to learn and use Vim effectively.
Show steps
  • Create a new folder on your computer for Vim resources.
  • Find and download Vim tutorials, cheat sheets, and plugins.
  • Organize the resources into subfolders.
  • Add the folder to your bookmarks or create a shortcut on your desktop for easy access.
Two other activities
Expand to see all activities and additional details
Show all five activities
Contribute to the Vim documentation
Contributing to the Vim documentation will help you learn more about Vim's features and internals, and it will also help the community by making the documentation more complete and accurate.
Show steps
  • Find a section of the Vim documentation that you would like to improve.
  • Make your changes to the documentation.
  • Submit a pull request to the Vim documentation repository.
Create a Vim plugin
Creating a Vim plugin will help you learn more about Vim's internals and how to extend its functionality.
Show steps
  • Come up with an idea for a Vim plugin.
  • Write the code for your plugin.
  • Test your plugin.
  • Publish your plugin to the Vim Plugin Repository.

Career center

Learners who complete Vim Masterclass will develop knowledge and skills that may be useful to these careers:
Cloud Engineer
Cloud engineers design, build, and manage cloud computing systems. You'll need to have a strong understanding of cloud computing technologies and be able to work with a variety of cloud platforms. This course provides an in-depth look at a variety of text editing functions, making it highly desirable for cloud engineers.
Software Engineer
Software engineers design, develop, test, and maintain software systems. You'll need a strong foundation in computer science and be able to work independently and as part of a team. This course provides an advanced set of skills with a text editor and is likely to be a great addition to your resume when applying to software engineer positions.
Data Analyst
Data analysts use their knowledge of mathematics, statistics, and computer science to analyze data and identify trends. You'll need to have a strong foundation in data analysis techniques and be able to work with a variety of data sources. This course can help you gain proficiency in using a text editor, which is essential for data analysts.
Database Administrator
Database administrators are responsible for the installation, configuration, and maintenance of databases. You'll need to have a strong understanding of database management systems and be able to work with a variety of databases. This course will help you gain experience with using a text editor, which is essential for database administrators.
Data Scientist
Data scientists use their knowledge of mathematics, statistics, and computer science to extract insights from data. You'll need to have a strong foundation in data analysis techniques and be able to work with a variety of data sources. This course can help you gain proficiency in using a text editor, which is essential for data scientists.
DevOps Engineer
DevOps engineers work to bridge the gap between development and operations teams. You'll need to have a strong understanding of both development and operations processes. This course can help you gain practical experience with managing files in a text editor, a core skill for DevOps engineers.
Computer Programmer
Computer programmers use their programming knowledge to translate business requirements into systems or software solutions that can be used to solve business problems. You'll need to be able to think logically and creatively, as well as have a strong understanding of programming languages. This course will help you gain a strong foundation in using a text editor, which is useful for both new and experienced programmers. Searching and replacing will be part of your everyday life and the skills you learn in this course will be highly applicable in this role.
System Administrator
System administrators are responsible for managing and maintaining computer systems. You'll need to have a strong understanding of operating systems and be able to work with a variety of hardware and software. This course can help you develop the text editing skills that system administrators need every day, increasing your efficiency.
Web Developer
Web developers create and manage websites. You'll need to be able to understand HTML, CSS, and JavaScript, as well as have a strong understanding of web design principles. This course can provide you with a foundation in using a text editor, which can be helpful if you're not already familiar.
Software Developer
Software developers create applications that run on various devices, including computers, phones, and tablets. You'll need to be able to understand the needs of users and be able to create software that meets those needs. This course can help you strengthen your understanding of writing software and help you move into software development if you're an experienced developer.
Technical Writer
Technical writers are responsible for turning complex technical information into easy-to-follow content, often in the form of user guides, technical specifications, or white papers. You'll need excellent communication skills and a knack for explaining technical concepts in plain English. This course will give you a great foundation in explaining the ins and outs of commands. The ability to quickly and easily navigate through a file is highly desirable and this course will help you improve your ability to do just that.
Business Analyst
Business analysts use their knowledge of business and technology to analyze business processes and identify opportunities for improvement. You'll need to have a strong understanding of business analysis techniques and be able to work with a variety of stakeholders. This course can be a useful resource for growing your understanding of how text editors work and how to use them to manage files.
CTO
CTOs are responsible for the overall technology strategy and vision of an organization. You'll need to have a strong understanding of business and technology and be able to lead a team of IT professionals at a high level. This course can be a useful resource for growing your understanding of how text editors work and how to use them to manage files.
IT Manager
IT managers plan, direct, and coordinate the activities of an organization's IT department. You'll need to have a strong understanding of IT management principles and be able to lead a team of IT professionals. This course can be a useful resource for growing your understanding of how text editors work and how to use them to manage files.
CIO
CIOs are responsible for the overall IT strategy and vision of an organization. You'll need to have a strong understanding of business and technology and be able to lead a team of IT professionals at a high level. This course can be a useful resource for growing your understanding of how text editors work and how to use them to manage files.

Reading list

We've selected 11 books that we think will supplement your learning. Use these to develop background knowledge, enrich your coursework, and gain a deeper understanding of the topics covered in Vim Masterclass.
A comprehensive guide to vi and Vim, this book provides a solid foundation for understanding how to use both text editors.
Martin's book provides a set of principles and practices for professional programmers, which can be beneficial for those who want to use Vim effectively in a professional setting.
Feathers' book provides practical guidance on working with legacy code, which can be valuable for those who use Vim to maintain or refactor existing codebases.
Evans' book provides a deep dive into domain-driven design, a software development approach that can be beneficial for those interested in using Vim for complex software development projects.
Gamma et al.'s book classic reference for design patterns, which can be helpful for those interested in using Vim for object-oriented software development.
Martin and Martin's book provides guidance on agile software development principles, patterns, and practices in the context of C#, which can be valuable for those interested in using Vim for agile development.
McConnell's book offers comprehensive guidance on software development best practices, including tips and techniques that can be applied to using Vim effectively.
Intended for beginners, Clinton's training may provide a gentle introduction to Vim for those who are new to the text editor.
Freeman et al.'s book provides a more accessible introduction to design patterns, which can be helpful for those who are new to the concept.
Raymond's book provides a fascinating look at the history and culture of open source software development, which can be highly relevant for those interested in the history of Vim.

Share

Help others find this course page by sharing it with your friends and followers:
Our mission

OpenCourser helps millions of learners each year. People visit us to learn workspace skills, ace their exams, and nurture their curiosity.

Our extensive catalog contains over 50,000 courses and twice as many books. Browse by search, by topic, or even by career interests. We'll match you to the right resources quickly.

Find this site helpful? Tell a friend about us.

Affiliate disclosure

We're supported by our community of learners. When you purchase or subscribe to courses and programs or purchase books, we may earn a commission from our partners.

Your purchases help us maintain our catalog and keep our servers humming without ads.

Thank you for supporting OpenCourser.

© 2016 - 2024 OpenCourser