1. 辅助操作
set number
显示行号
set wrap
自动折行,显示长行
2. 基础操作
2.1 模式切换
从正常模式切换到插入模式:
- i:在当前光标位置之前开始插入文本。
- a:在当前光标位置之后开始插入文本。
- o:在当前行下方插入一个新行并开始插入文本。
- O:在当前行上方插入一个新行并开始插入文本。
- I:在当前行的行首开始插入文本。
- A:在当前行的行尾开始插入文本。
退出功能:
- 在正常模式下,按下
:q
,然后按回车键退出 Vim(如果没有做任何更改)。
- 在正常模式下,按下
:q!
,然后按回车键强制退出 Vim(忽略对文件的更改)。
- 在正常模式下,按下
:wq
或:x
,然后按回车键保存文件并退出 Vim。
2.2 光标移动
移动光标:
h
:将光标向左移动一个字符。
j
:将光标向下移动一行。
k
:将光标向上移动一行。
l
:将光标向右移动一个字符。
移动到行首或行尾:
0
(数字零):将光标移动到当前行的行首。
$
:将光标移动到当前行的行尾。
移动到文件的开头或结尾:
gg
:将光标移动到文件的开头。
G
:将光标移动到文件的结尾。
移动到指定行号:
:<行号>
:将光标移动到指定的行号。
2.3 文本编辑
插入文本:
i
:在当前光标位置之前开始插入文本。
a
:在当前光标位置之后开始插入文本。
o
:在当前行下方插入一个新行并开始插入文本。
O
:在当前行上方插入一个新行并开始插入文本。
删除文本:
x
:删除光标所在位置的字符。
dd
:删除光标所在的整行。
[n]dd
:剪切光标所在行及其下方的 n-1 行。例如,使用3dd
命令将光标所在行及其下方的三行剪切到剪贴板。
D
:删除光标所在位置到行尾的内容。
复制和粘贴:
yy
:复制光标所在的整行。
[n]yy
:复制光标所在行及其下方的 n-1 行。例如,输入3yy
命令将光标所在行及其下方的三行复制到剪贴板。
p
:将已复制的内容粘贴到光标所在位置的下方。
P
:将已复制的内容粘贴到光标所在位置的上方。
2.4 撤销、重做
- 撤销操作:按下
u
键:撤销上一个操作。
- 重做操作:按下
Ctrl + r
键:重做上一个被撤销的操作。
- 输入
:undolist
命令:显示撤销树中的操作历史记录。
- 输入
:undo [number]
命令:撤销到指定编号的操作。
- 输入
:redo [number]
命令:重做到指定编号的操作。
2.5 搜索和替换
关键词搜索:
- 按下
/
键进入搜索模式,然后输入要搜索的关键词并按下回车。
- 使用
n
键来跳到下一个匹配项,使用N
键来跳到上一个匹配项。
字符串搜索:
- 按下
*
键,Vim 将会选中当前光标所在位置的单词,并在文档中继续搜索该单词。
行内定位:
- 按下
f
键,然后输入一个字符,Vim 将会在当前行查找该字符,并将光标定位到第一个匹配的位置。
- 按下
;
键,将光标跳转到下一个相同的字符处。
- 按下
,
键,将光标跳转到上一个相同的字符处。
匹配括号定位:
- 将光标置于某个括号上时,按下
%
键,Vim 将会跳转到配对的对应括号上。
替换:
- 按下
:
键进入命令行模式。
- 输入
s/要替换的内容/替换后的内容/
并按下回车。此命令将会替换当前行中首次出现的要替换的内容。
- 如果要替换所有匹配到的内容,可以在命令末尾加上"g"标志:
s/要替换的内容/替换后的内容/g
。
- 若要确认每个替换操作,请使用"c"标志:
s/要替换的内容/替换后的内容/gc
。
- 若要只替换某一行范围内的内容,可以先使用":"命令设置范围,再执行替换命令。例如:
1,10s/要替换的内容/替换后的内容/g
。
3. 正则表达式使用
使用正则表达式搜索:
- 进入搜索模式:按下
/
键。
- 输入正则表达式并按下回车。Vim 会寻找与该表达式匹配的文本。
- 例如,要查找包含单词 “example” 的行,可以输入
/example
。
使用正则表达式进行替换:
- 进入命令行模式:按下
:
键。
- 输入替换命令,其中使用正则表达式指定要匹配和替换的内容。
- 例如,要将文档中所有匹配 “foo” 的实例替换为 “bar”,可以输入
:%s/foo/bar/g
。其中,%
表示应用于整个文件,s
表示替换操作,g
表示全局替换。
正则表达式元字符的使用:
- 常见的元字符包括
^
(行的开始)、$
(行的结束)、.
(匹配任意字符)、*
(零次或多次重复前一个字符)等。
- 例如,要查找以 “start” 开头的行,可以输入
/^start
。
- 例如,要查找以 “end” 结尾的行,可以输入
/end$
。
限定符和字符类:
- 限定符可以指定匹配次数,如
+
(一次或多次)、?
(零次或一次)等。
- 字符类用于匹配一组字符,如
[abc]
(匹配字符 a、b 或 c)、[0-9]
(匹配数字)等。