文章目录
1.vi与vim的关系
Linux中,绝大部分的配置文件都是“ASCII”的纯文本形态存在,因此利用简单的文字编辑软件就能够修改设置了。
为什么要使用vi与vim?
- 所有的UnixLike系统都会内置vi文书编辑器,其他的文书编辑器则不一定会存在
- 很多个别软件的编辑接口都会主动调用vi
- vim具有程序编辑的能力,可以主动的以字体颜色辨别语法的正确性,方便程序设计
- 因为程序简单,编辑速度相当快速
vim与vi的关系:
- 你可以将vim视作vi的进阶版本,vim 可以用颜色或底线等方式来显示一些特殊的信息
- vim会依据文件的扩展名或者是文件内的开头信息,判断该文件的内容而自动的调用该程序的语法判断式,再以颜色来显示程序码与一般信息
- Linux 基础配置文件内的语法,都能够用vim来检查呢
2.vi
vi 共分为三种模式,分别是“命令模式”、“编辑模式”与“命令行命令模式”。
- 命令模式
以vi打开一个文件就直接进入一般指令模式了,这是默认的模式。在这个模式中, 你可以使用“上下左右”按键来移动光标,你可以使用“删除字符”或“删除整列”来处理文件内容, 也可以使用“复制、贴上”来处理你的文件数据。
- 编辑模式
按下“i,I,o,O,a,A,r,R”等任何一个字母之后才会进入编辑模式。
按下这些按键时,在画面的左下方会出现“INSERT或REPLACE”的字样,此时才可以进行编辑。而如果要回到一般指令模式时,则必须要按下“Esc”这个按键即可退出辑模式。
- 命令行命令模式
在一般模式当中,输入“: / ?”三个中的任何一个按钮,就可以将光标移动到最下面那一列。在这个模式当中,可以提供你“搜寻数据”的动作,而读取、存盘、大量取代符、离开 vi 、显示行号等等的动作则是在此模式中达成的。
3.vim的使用
vim是vi的增强模式,但是在安装完一个新的linux系统后,可以直接使用vi,如果要使用加强版vim,需要手动安装。
vim是一个功能强大的全屏幕文本编辑器,是linux/unix上最常用的文本编辑器,他的作用是建立编辑、显示文本文件。
vim 没有菜单,只有命令。
vim有三种工作模式命令模式、插入模式、编辑模式。
3.1 初次使用
要建立或打开一个vim文本,需要输入命令:
vim [文件名]
这时进入文本页面,但是是命令格式下,这时候不论你输入什么,记事本都会把它当作一个命令来执行。
这时候不可以直接进行编辑,输入i进入插入模式:
这时再键入Esc键退出插入模式,回到命令模式。
再进入编辑模式的标记就是输入“:”,例如我们现在要输入行号:
只有再:后输入的内容就是编辑模式下要执行的命令,这时再输入:wq就可以保存退出了。
3.2 插入命令
命令模式要进入插入模式时,可以使用以下相关命令:
命令 | 作用 |
---|---|
a | 在光标所在字符后插入 |
A | 在光标所在行行尾插入 |
i | 在光标所在字符前插入 |
I | 在光标所在行行首插入 |
o | 在光标下插入新行 |
O | 在光标上插入新行 |
3.3 定位命令
命令 | 作用 |
---|---|
:set nu | 设置行号 |
:set nonu | 取消行号 |
gg | 到第一行 |
G | 到最后一行 |
nG | 到第n行 |
:n | 到第n行 |
$ | 移至行尾 |
0 | 移至行首 |
首先我们将/etc/services文件复制一份到/tmp下,进行实验:
现在我们给文件插入行号“:set nu”:
让光标到第100行“:100”:
到文本的最后一行“G”:
到行尾“$”:
3.4 删除命令
命令 | 作用 |
---|---|
x | 删除光标所在处字符 |
nx | 删除光标所在处后n个字符 |
dd | 删除光标所在行 |
dG | 删除光标所在行到文件末尾的内容 |
D | 删除光标所在行到行尾的内容 |
:n1,n2d | 删除指定范围的行 |
3.5复制和剪切命令
命令 | 作用 |
---|---|
yy | 复制当前行 |
yny | 复制当前以下行共n行 |
cc | 剪切当前行 |
cnc | 将切当前行以下年行 |
p、P | 粘帖在光标所在行下或行上 |
3.6 替换和取消命令
命令 | 作用 |
---|---|
r | 取代光标所在处字符 |
R | 从光标所在处开始替换字符 |
u | 取消上一步操作 |
ctrl+r | 取消上一步撤销 |
3.7 搜索和搜索替换命令
命令 | 作用 |
---|---|
/string | 搜索指定字符串,搜索时忽略大小写:set ic |
n | 查看下一个关键字 |
:%s/old/new/g | 全文替换整个字符 |
:n1,n2s/old/new/g | 指定范围替换字符 |
3.8保存和退出命令
命令 | 作用 |
---|---|
:w | 保存修改 |
:w new_filename | 另存为指定文件 |
:wq | 保存修改并退出 |
ZZ | 快捷键,保存修改并退出 |
:q! | 不保存修改,强制退出 |
:wq! | 保存修改强制退出(文件所有者及root可使用) |
在只读文件中可以使用:wq!强行保存使用,但是只有文件所有者及root用户可以强制保存。