Bootstrap

vim 显示行数和删除内容操作

在 Vim 中,显示行数和删除内容是两个常见的操作,结合使用可以帮助你更加高效地编辑文件。以下是关于如何在 Vim 中显示行数和删除内容的详细说明:


1. 显示行数

显示绝对行号

绝对行号会显示每一行的实际行号,适合你查看文件的大致结构和定位某个具体行。

  • 启用绝对行号

    :set number
    

    这会在每行的左侧显示行号。

  • 关闭绝对行号

    :set nonumber
    
显示相对行号

相对行号会显示当前光标所在行与其他行的距离,这对于执行与行号相关的操作(如跳转、删除、复制)非常有帮助。

  • 启用相对行号

    :set relativenumber
    

    这将显示当前行的绝对行号,其他行显示相对于当前行的行号。

  • 关闭相对行号

    :set norelativenumber
    
同时显示绝对和相对行号

在这种模式下,当前行显示绝对行号,其他行显示相对行号,这对于跳转和行操作非常方便。

  • 启用绝对行号和相对行号
    :set number
    :set relativenumber
    

2. 删除内容

在 Vim 中,删除内容的命令通常与行号、范围以及光标位置相关。这里列出一些常见的删除操作。

删除当前行
  • 删除当前行(光标所在的行):
    dd
    
删除指定行数
  • 删除当前行及其下面的 3 行(包括当前行):

    d4d
    

    或者:

    4dd
    

    这会删除从当前行开始的 4 行。

  • 删除当前行以下的 n 行

    dnd
    

    其中 n 是你想删除的行数。

删除指定范围的行

你也可以通过行号来指定删除的范围。

  • 删除第 10 行到第 20 行的内容

    :10,20d
    
  • 删除从第 5 行到文件的最后一行

    :5,$d
    
  • 删除当前行到第 10 行的内容

    :.,10d
    

    这里的 . 表示当前行。

  • 删除当前行到文件末尾的内容

    :.,$d
    
删除指定模式之前或之后的行

Vim 还允许你删除直到某个模式的行。

  • 删除当前行到匹配模式(如“pattern”)的行

    d/pattern
    
  • 删除当前行到匹配模式(如“pattern”)之后的行

    d?pattern
    
删除整页内容
  • 删除当前页面的所有内容
    d%
    
删除整个文件的内容
  • 删除整个文件的内容
    :%d
    

3. 删除操作的快捷方式

  • 删除字符

    • x 删除光标所在位置的字符。
    • X 删除光标前一个字符。
  • 删除单词

    • dw 删除光标所在位置的单词。
    • daw 删除光标所在的整个单词(包括前后空格)。
  • 删除到行尾

    • d$ 删除从光标到行尾的所有内容。
  • 删除到行首

    • d0 删除从光标到行首的所有内容。
  • 删除多个字符或单词

    • d3w 删除接下来的 3 个单词。
    • d2$ 删除从光标处到行尾的内容,删除 2 行的内容。

4. 结合显示行数和删除操作

在结合 行号显示删除内容 操作时,使用相对行号非常有用,因为你可以通过相对行号快速指定要删除的行数。例如:

  • 如果你想删除当前行以及接下来的 5 行,可以使用相对行号显示,然后按如下操作:

    d5d
    

    这会删除当前行以及接下来的 5 行。

  • 如果你要删除当前行和上下各 2 行的内容,可以使用:

    d2k
    d2j
    

    这会删除当前行和其上面 2 行、下面 2 行的内容。


总结:

  • 显示行号

    • :set number 显示绝对行号。
    • :set relativenumber 显示相对行号。
    • :set number:set relativenumber 一起使用,显示当前行的绝对行号和其他行的相对行号。
  • 删除操作

    • dd 删除当前行。
    • d4d4dd 删除当前行和接下来的 3 行。
    • :5,10d 删除第 5 行到第 10 行的内容。
    • d/pattern 删除从当前行到匹配“pattern”模式的行。
    • d% 删除当前页面的内容。
    • :%d 删除整个文件的内容。

这些操作可以帮助你快速删除文件中的内容,并通过行号来更精确地定位你要操作的部分。

;