PracticalVim Tip28 - yszheda/wiki GitHub Wiki

Table of Contents

Tip 28: Execute a Command on One or More Consecutive Lines

Return to the top: <>

Try replacing `:print` in the following examples with `:delete`/`:join`/`:substitute`/`:normal`.

`:p` is short for `:print`

Use Line Numbers as an Address

Example:

Specify a Range of Lines by Address

  • `:{start},{end}`: specify a range
  • `.`: the current line
  • `%`: all the lines in the current file
Example:

Specify a Range of Lines by Visual Selection

  • `'<`: the first line of the visual selection
  • `'>`: the last line of the visual selection
The marks above persist when we leave Visual mode.

Example:

Specify a Range of Lines by Patterns

Example:

Modify an Address Using an Offset

The general form for an offset: `:{address}+n`

  • If `n` is omitted, it defaults to 1.
  • `{address}` can be a line number, a mark, or a pattern.
Example:

| Symbol | Address | | 1 | First line of the file | | $ | Last line of the file | | 0 | Virtual line above first line of the file | | . | Line where the cursor is placed | | 'm | Line containing mark `m` | | '< | Start of visual selection | | '> | End of visual selection | | % | The entire file (shorthand for `:1,$`) |

⚠️ **GitHub.com Fallback** ⚠️