转自:https://blog.csdn.net/lamp_yang_3533/article/details/53337581
先上一张图:
1. vim 简介
vi 是 linux 系统的默认文本编辑器,一般都默认安装了。
vim 是 vi 的升级版本,它的功能比 vi 更强大。vim 不仅兼容 vi ,而且它还有一些新特性,如:高亮显示、支持多种操作系统等。
vim 是 linux 系统中最常用的文本编辑器。它的主要作用是创建、编辑和显示文本文件。
如果你的 CentOS 系统中,还没有 vim 命令,可用下面的方法进行安装。
yum -y install vim-enhanced
说明: vim 和 vi 的绝大多数用法都是相同的。
2. vim 的工作模式
vim 文本编辑器有两种工作模式:命令模式和插入模式。
2.1 命令模式
用 vim 命令打开一个文件时,默认会进入命令模式。
命令模式下,只能输入命令,不能编辑内容。
从命令模式切换到插入模式,有如下6种方式:
a 从光标所在字符的后面插入
A 从光标所在行的行尾插入
i 从光标所在字符的前面插入
I 从光标所在行的行首插入
o 从光标所在行的下方插入新的空白行
O 从光标所在行的上方插入新的空白行
在命令模式下,可以用方向键或回车键移动光标的位置。
2.2 插入模式
插入模式下,可以对文件的内容进行编辑。
按 ESC 键,可从插入模式切换到命令模式。
3. vim 命令模式下的常用命令
下面讲述的命令都必须在 vim 的命令模式下执行,输入相关命令后,就会执行该命令,如果是以冒号或正斜线开头的命令,需要按回车执行。
3.1 定位命令
常用命令 | 作用 |
---|---|
0 | 将光标快速定位到本行的行首 |
^ | 同上 |
$ | 将光标快速定位到本行的行尾 |
gg | 第一行的行首 |
G | 最后一行的行首 |
nG | 第 n 行的行首 |
:n | 第 n 行的行首 |
:set nu | 显示行号 |
:set nonu | 取消行号 |
3.2 删除命令
常用命令 | 作用 |
---|---|
x | 删除光标所在处的单个字符 |
nx | 删除光标所在处后面的 n 个字符(包括光标所在处的字符) |
dd | 删除光标所在行的单行 |
ndd | 删除光标所在行后面的 n 行(包括光标所在的行) |
dG | 从光标所在行开始,删除后面所有的行 |
D | 删除光标所在处到行尾的内容 |
:n1,n2d | 删除从行号 n1 到行号 n2 的多行,如 :3,5d |
3.3 复制、剪切和粘贴命令
常用命令 | 作用 |
---|---|
yy | 复制光标所在的行 |
nyy | 复制光标所在行后面的 n 行(包括光标所在的行) |
dd | 剪切光标所在的行 |
ndd | 剪切光标所在行后面的 n 行(包括光标所在的行) |
p | 粘贴到光标所在行的下面 |
P | 粘贴到光标所在行的上面 |
3.4 替换、撤销和恢复命令
常用命令 | 作用 |
---|---|
r | 替换光标所在处的字符 |
R | 从光标所在处的字符开始替换,按ESC结束 |
u | 取消(撤销)上一步操作 |
Ctrl+r | 快捷键。对使用u命令撤销的操作进行恢复 |
3.5 查找和替换命令
常用命令 | 作用 |
---|---|
:set ic | 查找替换时,忽略大小写 |
:set noic | 查找替换时,区分大小写(默认区分大小写) |
/str | 查找指定的字符串,如果匹配到多个,用 n 切换到下一个 |
:%s/old/new/g | 全文替换(%s表示全文搜索;/g表示不进行询问,直接替换,是默认的替换方式,故也可省略不写) |
:%s/old/new | 全文替换(不会进行询问,直接替换) |
:%s/old/new/c | 全文替换(会进行询问是否确认替换) |
:n1,n2s/old/new | 指定范围内的替换(从行号 n1 到 n2 的范围替换) |
3.6 保存和退出命令
常用命令 | 作用 |
---|---|
:w | 保存修改 |
:w newName | 另存为新的文件 |
:wq | 保存并退出 |
ZZ | 保存并退出(这是一个快捷键) |
:q | 退出 |
:q! | 强制退出(不会保存修改) |
:wq! | 强制保存并退出(文件所有者和root才能使用该命令) |
4. vim 命令的基本用法
vi a.txt
或者
vim a.txt
打开当前目录下的 a.txt 文件,如果文件本身已存在,才是打开文件。
如果文件不存在,就是创建该文件。创建文件后,如果没有修改文件的内容,直接退出(:q)的话,该新创建的文件就会自动被删除。