在 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
删除当前行。d4d
或4dd
删除当前行和接下来的 3 行。:5,10d
删除第 5 行到第 10 行的内容。d/pattern
删除从当前行到匹配“pattern”模式的行。d%
删除当前页面的内容。:%d
删除整个文件的内容。
这些操作可以帮助你快速删除文件中的内容,并通过行号来更精确地定位你要操作的部分。