一、基础操作
vi是Linux系统中自带的文本编辑器,可以在终端中使用。在终端输入vi命令后,就可以打开一个文本编辑器进行编辑。
vi一共有两种模式:命令模式和编辑模式。在命令模式下,输入的字符会被视为命令,而不是输入到文件中。在编辑模式下,输入的字符会被直接写入到文件中。
为了进入编辑模式,需要按下“i”键,此时可以进行文本编辑。为了回到命令模式,需要按下“Esc”键。
在命令模式下,可以使用以下常用命令:
命令 | 说明 ---|--- i | 进入插入模式 Esc | 回到命令模式 :q | 退出编辑器 :w | 保存文件 :q! | 强制退出编辑器,不保存文件 :wq | 保存文件并退出编辑器
举例说明:
$ vi test.txt # 打开文件test.txt i # 进入编辑模式 这是一段测试文本。 ^[[D^[[D^[[D^[[D^[[D^[[D^[[D^[[D^[[D 这是一段测试文本,光标已经移动到了行首。 Esc # 回到命令模式 :w # 保存文件 :q # 退出编辑器 $ # 返回终端
二、移动光标
在命令模式下,可以使用以下命令来移动光标:
命令 | 说明 ---|--- h | 左移一个字符 j | 下移一行 k | 上移一行 l | 右移一个字符 0 | 移动到行首 $ | 移动到行尾 G | 移动到文件的最后一行 :x,y | 将光标移动到x行y列
举例说明:
$ vi test.txt # 打开文件test.txt G # 移动到文件的最后一行 0 # 移动到行首 j # 下移一行 l # 右移一个字符 3j # 下移三行 3l # 右移三个字符 10,20 # 移动到第10行第20列
三、文本编辑
在编辑模式下,可以进行以下文本编辑操作:
操作 | 说明 ---|--- 删除 | 在命令模式下按下d键,然后进行对应的删除操作 复制 | 在命令模式下按下y键,然后进行对应的复制操作 粘贴 | 在命令模式下按下p键,将上一次复制的内容粘贴到当前光标位置 撤销 | 在命令模式下按下u键,撤销上一次操作 重做 | 在命令模式下按下Ctrl+r键,重做上一次被撤销的操作
举例说明:
$ vi test.txt # 打开文件test.txt i # 进入编辑模式 这是一段测试文本。 按下Esc键,回到命令模式 10l # 移动光标到“一”前面 d$ # 删除光标到行末的内容 按下Esc键,回到命令模式 3yy # 复制三行 p # 粘贴刚才复制的内容 u # 撤销刚才的操作 Ctrl+r # 重做上一次操作 :wq # 保存文件并退出
四、搜索
在命令模式下,可以使用以下搜索命令:
命令 | 说明 ---|--- /keyword | 向前搜索包含关键词的文本 ?keyword | 向后搜索包含关键词的文本 n | 在同一方向上继续搜索 N | 在相反的方向上继续搜索
举例说明:
$ vi test.txt # 打开文件test.txt /测试 # 向前搜索“测试”关键字 n # 继续上一次搜索 N # 在相反方向上继续搜索
五、替换
在命令模式下,可以使用以下命令来进行文本替换:
命令 | 说明 ---|--- :s/old/new/ | 将当前行中的old替换为new :x,y s/old/new/g | 将x~y行中的old全部替换为new :%s/old/new/g | 将所有行中的old全部替换为new :%s/old/new/gc | 将所有行中的old全部替换为new,并且进行交互式操作
举例说明:
$ vi test.txt # 打开文件test.txt :%s/测试/测试文本/g # 将所有的“测试”替换为“测试文本” :%s/测试/测试文本/gc # 将所有的“测试”替换为“测试文本”,并进行交互式操作
六、其他
在使用vi时还有一些其他的常用操作:
操作 | 说明 ---|--- :set nu | 打开行号显示 :set nonu | 关闭行号显示 :set hlsearch | 打开高亮显示搜索结果功能 :set nohlsearch | 关闭高亮显示搜索结果功能
举例说明:
$ vi test.txt # 打开文件test.txt :set nu # 打开行号显示 :set hlsearch # 打开高亮显示搜索结果功能 :set nohlsearch # 关闭高亮显示搜索结果功能 :set nu! # 切换行号显示状态
总结
vi是Linux系统中自带的文本编辑器,可以在终端中使用。vi一共有两种模式:命令模式和编辑模式。在命令模式下,可以进行移动光标、搜索、替换等操作。在编辑模式下,可以进行文本删除、复制、粘贴等操作。在实际应用中,了解vi的使用方法是很有帮助的。