跟着老万学linux运维(2)——Vi编辑器

版权声明:本文为博主原创文章,创作不易,转载请注明出处。 https://blog.csdn.net/w1014074794/article/details/87011451

跟着老万学linux运维(2)——Vi编辑器

一、工作模式

  • 普通模式
  • 插入模式
  • 命令模式

普通模式可以实现基本的光标移动与大量的快捷键操作;
插入模式可实现文本的基本编辑功能;
命令模式通过输入特定的指令实现特定的功能,如保存与退出。

默认情况下,系统不支持vim命令。
使用vi命令编辑文档,是没有彩色显示的。

可以通过如下命令安装vim编辑器,让显示更丰富

yum install -y vim

vi 和vim 的区别
它们都是多模式编辑器,不同的是vim 是vi的升级版本,它不仅兼容vi的所有指令,而且还有一些新的特性在里面。

vim的这些优势主要体现在以下几个方面:
1、多级撤消
我们知道在vi里,按 u只能撤消上次命令,而在vim里可以无限制的撤消。

注意:在vi编辑器里面尝试,u也支持多级撤销

2、易用性

vi只能运行于unix中,而vim不仅可以运行于unix,windows ,mac等多操作平台。

3、语法加亮
vim可以用不同的颜色来加亮你的代码。

4、可视化操作
就是说vim不仅可以在终端运行,也可以运行于x window、 mac os、 windows。

5、对vi的完全兼容
某些情况下,你可以把vim当成vi来使用。

vi和vim都是Linux中的编辑器,不同的是vim比较高级,可以视为vi的升级版本。vi使用于文本编辑,但是vim更适用于coding。

简单来说,vim相比vi编辑器,显示更好看,兼容性更好,更适合coding。

二、工作模式的转换

vim默认会创建一个新的文档,如果后面跟文件名参数,会判断文件是否存在,如果存在就打开,如果不存在,vi将创建该文件。

注意:
非正常关闭或有其他进程正在同时编辑该文件,导致swap文件没有清除,使用vi打开文件时,会提示:found a swap file by the name.

普通模式——>插入模式
vi编辑器默认进入普通模式,按i键进入插入模式。(还有其他的一些进入插入模式的方式,a,o这些感觉意义不大,不介绍)

回退到普通模式
通过Esc键

普通模式——>命令模式
在普通模式下,输入“:,/,?”,即可进入命令模式;
比如:
q!可以不保存,强制退出编辑器

转换关系示意图:
在这里插入图片描述

三、快捷操作

普通模式下,光标移动操作

快捷键 功能描述
0 数字0,将光标从所在位置移动到当前行的开头
$ 将光标从所在位置移动到当前行的结尾
gg 移动光标到文件首行
G 移动光标到文件末尾
nG 移动光标至n行
ngg 移动光标至n行
n <Enter.> n为数字,<Enter.>为回车键,将光标从当前位置向下移动n行

显示行号
命令模式下,set nu

普通模式下,搜索与替换操作

命令 说明
/key 从光标位置开始,向下寻找名为key的字符串
?key 从光标位置开始,向上寻找名为key的字符串
n 从光标位置开始,向下重复前一个搜索的动作
N 从光标位置开始,向上重复前一个搜索的动作
:s/root/admin/ 将光标当前行中第一个出现的root替换为admin
:s/root/admin/g 将光标当前行中所有root替换为admin
:3,5 s/root/admin/g 将第三行至第五行之间的所有root替换为admin
: %s/root/admin/g 将所有行的root替换为admin

普通模式下,复制、粘贴、删除等操作

命令 说明
yy 复制光标所在的当前行
nyy n为数字,复制光标开始向下共n行
y1G 复制游标所在行到第一行的所有数据
yG 复制游标所在行到最后一行的所有数据
y0 复制光标所在的那个字符到该行行首的所有数据
y$ 复制光标所在的那个字符到该行行尾的所有数据
p/P p将已复制的数据粘贴到光标的下一行,P则为粘贴到光标的上一行
dd 删除光标所在的当前行
ndd n为数字,删除从光标开始向下共n行
u 撤销上一步操作,可以多次使用,如输入两个u,表示撤销两步操作
[Ctrl]+r 这个动作一般是和u撤退操作配合使用,用来取消上一步的撤退操作
~ 字母的大小写切换快捷键,由shift+~组合而成,单个转化当前光标后面的一个字符的大小写
~ 字母的大小写切换快捷键,由shift+~组合而成,单个转化当前光标后面的一个字符的大小写
3~ 将光标位置开始的3个字母改变其大小写
g~~ 改变当前行字母的大小写
U 将可视模式下选择的字母全改成大写字母,普通模式下按v进入可视模式
u 将可视模式下选择的字母全改成小写
. 点号,重复前一个执行过的动作
x 向后删除字符
X 向前删除字符
d1G 删除当前行至第一行
dG 删除当前行至最后一行
d0 删除当前光标文本至行首
d$ 删除当前光标文本至行尾
J 将光标所在行与下一行的数据结合成同一行
10J 将光标所在行与下10行的数据结合成同一行,注意J是大写

命令行模式

命令 说明
:wq 退出并保存
:wq! 退出并强制保存,“!”为强制的意思
:q! 强制退出,不保存
ZZ 这是大写的 Z 喔!若档案没有更动,则不储存离开,若档案已经被更动过,则储存后离开!,习惯这个操作后,你会爱上他
:set nu 显示行号
:set nonu 取消行号

特别注意,在 vi/vim 中,数字是很有意义的!数字通常代表重复做几次的意思! 也有可能是代表去到第几个什么什么的意思。

举例来说,要删除 50 行,则是用 『50dd』 对吧! 数字加在动作之前,如我要向下移动 20 行呢?那就是『20j』或者是『20↓』即可。

猜你喜欢

转载自blog.csdn.net/w1014074794/article/details/87011451