Skip to main content
Engineering LibreTexts

05-A.2.2: Vim - Visual Mode

  • Page ID
    32122
  • \( \newcommand{\vecs}[1]{\overset { \scriptstyle \rightharpoonup} {\mathbf{#1}} } \) \( \newcommand{\vecd}[1]{\overset{-\!-\!\rightharpoonup}{\vphantom{a}\smash {#1}}} \)\(\newcommand{\id}{\mathrm{id}}\) \( \newcommand{\Span}{\mathrm{span}}\) \( \newcommand{\kernel}{\mathrm{null}\,}\) \( \newcommand{\range}{\mathrm{range}\,}\) \( \newcommand{\RealPart}{\mathrm{Re}}\) \( \newcommand{\ImaginaryPart}{\mathrm{Im}}\) \( \newcommand{\Argument}{\mathrm{Arg}}\) \( \newcommand{\norm}[1]{\| #1 \|}\) \( \newcommand{\inner}[2]{\langle #1, #2 \rangle}\) \( \newcommand{\Span}{\mathrm{span}}\) \(\newcommand{\id}{\mathrm{id}}\) \( \newcommand{\Span}{\mathrm{span}}\) \( \newcommand{\kernel}{\mathrm{null}\,}\) \( \newcommand{\range}{\mathrm{range}\,}\) \( \newcommand{\RealPart}{\mathrm{Re}}\) \( \newcommand{\ImaginaryPart}{\mathrm{Im}}\) \( \newcommand{\Argument}{\mathrm{Arg}}\) \( \newcommand{\norm}[1]{\| #1 \|}\) \( \newcommand{\inner}[2]{\langle #1, #2 \rangle}\) \( \newcommand{\Span}{\mathrm{span}}\)

    Visual Mode

    When editing text with vim, visual mode can be extremely useful for identifying chunks of text to be manipulated.

    Vim's visual mode has three versions: character, line, and block. The keystrokes to enter each mode are:

    • Character mode: v (lowercase)
    • Line mode: V (uppercase)
    • Block mode: Ctrl+v

    Here are some ways to use each mode to simplify your work.

    Character Mode

    Character mode can highlight a sentence in a paragraph or a phrase in a sentence. Then the visually identified text can be deleted, copied, changed, or modified with any other vim editing command.

    Image of a Linux terminal session with vim running in character visual mode
    Figure \(\PageIndex{1}\): Character mode in vi. ("character mode" by Patrick McClanahan is licensed under CC BY-SA 4.0)

    Once you have a file opened (or have typed in some text), make sure you are in command mode by hitting ESC. Then hit the v key and you will see the word "-- VISUAL --" show at the bottom left corner of the screen. Now, using the arrow keys, you can move one character at a time, or up and down a line at a time. Once you have selected the desired text, you can edit it with any vim command: delete, edit, yank it (to be pasted elsewhere).

    Also, notice at the lower right hand corner of the terminal there are 2 numbers - 4,35. The first number is the row in the file, and the second number is the column the cursor is currently on.

    There is also the word 'All.' This means that All of the lines of the file are shown in the terminal. If the file extended past the end of the screen it would show a percentage of where the cursor is within the entire file, OR, it would say 'Top' if the cursor was at the top of the file, OR, it would say 'Bot' if the cursor was at the bottom of the file.

    Line Mode

    Line mode is similar to character mode, although it highlights a single sentence or sentences. Then the visually identified text can be deleted, copied, changed, or modified with any of vim's editing commands.

    A Linux terminal session showing vim in line visual mode
    Figure \(\PageIndex{2}\): Line mode in vi. ("vi line mode" by Patrick McClanahan is licensed under CC BY-SA 4.0

    Once you have a file opened (or have typed in some text), make sure you are in command mode by hitting ESC. Then hit the SHIFT-V keys and you will see the word "-- VISUAL LINE --" show at the bottom left corner of the screen. Now, using the arrow keys, you can move one character at a time, or up and down a line at a time. Once you have selected the desired text, you can edit it with any vim command: delete, edit, yank it (to be pasted elsewhere).

    As always you can exit the editor by making sure you are in command mode, hitting the ESC key, then entering :wq (which writes, then quits), or :q! which will quit without saving your changes.

    Adapted from:
    "Getting started with Vim visual mode" by Susan Lauber, opensource.com is licensed under CC BY-SA 4.0


    05-A.2.2: Vim - Visual Mode is shared under a CC BY-NC license and was authored, remixed, and/or curated by LibreTexts.

    • Was this article helpful?