一名菜鸟学习编程技术,记录所学知识并分享给大家,希望大家多多支持。

一、命令模式的基本操作

输入vi命令后,便进入全屏幕编辑环境,此时的状态为
```命令模式```。
在命令模式下,输入一些命令,但是当你点击键盘上相应键输入命令时,这些命令会呈现最终的效果,不会在编辑器界面上显示出命令的字符。

1、vim编辑器的基本操作

子命令名称 作用
i 编辑文档,在状态行显示--INSERT
w 保存已编辑完成的文档
q 退出关闭文档
q! 强制关闭文档退出
/字符串 在文档中查找指定的字符串
set nu 文档中显示行号
set nonu 文档中不显示行号
d 删除当前行
nd 删除从当前行到n行
n1,n2d 删除从n1行到n2行
s /字符串1 /字符串2/g 将文档中字符串1用字符串2替换
ESC键 退出文档编辑状态,进入非编辑状态
u 在非编辑状态,撤销上次操作

2、行内的快速跳转

操作键 功能
^ 将光标快速跳转到本行的行首字符 home
$ 将光标快速跳转到本行的行尾字符 end
w 将光标快速跳转到当前光标所在位置的后一个单词的首字母
b 将光标快速跳转到当前光标所在位置的前一个单词的首字母
e 将光标快速跳转到当前光标所在位置的后一个单词的尾字母
方向键 进行上下左右方向的光标移动
Home 快速定位光标到行首
End 快速定位光标到行尾

3、行间快速跳转

命令 功能
:set nu 在编辑器中显示行号
:set nonu 取消编辑器中的行号显示
1G 跳转到文件的首行
G 跳转到文件的末尾行
#G 跳转到文件的第#行
PageUp 进行文本的向上翻页
PageDown 进行文本的向下翻页

二、vim编辑器的删除与撤销

1、文件内容的删除

命令 功能
x 删除光标处的单个字符 =delete
dd 删除光标所在行 ndd可以删除5行内容
dw 删除当前字符到单词尾(包括空格)的所有字符
de 删除当前字符到单词尾(不包括单词尾部的空格)的所有字符
d$ 删除当前字符到行尾的所有字符
d^ 删除当前字符到行首的所有字符
J 删除光标所在行行尾的换位符,相当于合并当前行和下一行的内容

2、文件内容的撤销

命令 功能
u 取消最近一次的操作,并恢复操作结果(可以多次使用u命令恢复已进行的多步操作)
U 取消对当前行进行的所有操作
Ctrl+r 对使用u命令撤销的操作进行恢复

三、文件内容的复制和粘贴

```单行复制:```在命令模式下,将光标移动到将要复制的行处,按```“yy”```进行复制;
```多行复制:```在命令模式下,将光标移动到将要复制的首行处,按```“nyy”```复制n行,其中n为数字;
```粘贴:```在命令模式下,将光标移动到将要粘贴的行处,按```“p”```进行粘贴。

命令 功能
yy 复制当前行整行的内容到vi缓冲区,5yy从当前行开始复制5行
yw 复制当前光标到单词尾字符的内容到vi缓冲区
y$ 复制当前光标到行尾的内容到vi缓冲区
y^ 复制当前光标到行首的内容的vi缓冲区
p 读取vi缓冲区中的内容,并粘贴到光标当前的位置(不覆盖文件已有的内容)

四、vim编辑器的查找与替换

1、文件内容的查找

vi提供了几种定位查找一个指定的字符串在文件中位置的方法。同时还提供一种功能强大的全局替换功能。
为查找一个字符串,在vi命令模式下键入
```“/”```,后面跟要查找的字符串,再按回车。
vi将光标定位在该串下一次出现的地方上。键入```“n”```跳到该串的下一个出现处,键入```“N”```跳到该串的上一个出现处。

命令 功能
/word 从上而下载文件中查找字符串“word”
?word 从下而上在文件中查找字符串“word”
n 定位下一个匹配的被查找字符串
N 定位上一个匹配的被查找的字符串

2、文件内容的替换

命令 功能
: s/old/new 将当前行中查找到的第一个字符“old”串替换为“new”
: s/old/new/g 将当前行中查找到的所有字符串“old”替换为“new”
: #,#s/old/new/g 在行号“#,#”范围内替换所有的字符串“old”为“new”
: %s/old/new/g 在整个文件范围内替换所有的字符串“old”为“new”
: s/old/new/c 在替换命令末尾加入c命令,将对每个替换动作提示用户进行确认