RHCE8学习过程(四)vim编译器

本文详细介绍了vim编辑器的四种模式,包括正常模式、插入模式、可视模式和命令行模式,以及如何在这些模式下进行文本编辑、光标定位、批量操作等。还讲解了自定义vim环境的方法,如临时设置和永久设置,并提到了vim与其他编辑器的对比。
摘要由CSDN通过智能技术生成

四、vim主要模式介绍及使用

vim 命令模式
确保系统已经安装了VIM工具

[root@Hengji ~]# rpm -qf `which vim'
> ^C
[root@Hengji ~]# rpm -qf `which vi'
> ^C

扩展:
问:vi和vim是同一个软件包安装的吗?
答:NO,vim是vi的增加版,最明显的区别就是vim可以语法加亮,它完全兼容vi
在centos8当中默认安装vim版本为vim8版本。

4.1、vim编辑器的四种操作模式

正常模式(Normal mode,俗称命令模式) ,命令行模式(Command-line mode)
插入模式(Insert mode ,俗称编辑模式),可视模式(Visual mode,俗称可视块模式)

[root@Hengji ~]# vim /etc/passwd
首次进入文件               ----正常模式(Normal mode,俗称命令模式)
按下I键,出现 “Insert”     ----插入模式(Insert mode ,俗称编辑模式)
按Esc 键,再输入冒号:      ----命令行模式(Command-line mode) 

从编辑模式到命令行模式怎样切换?
编辑模式->esc->命令模式->: ->命令行模式

字符操作(怎样进入编辑模式?)
进入编辑模式
说明:
i :当前字符之前插入 (光标前)
I :行首插入 (行首)
a :当前字符之后插入 (光标后)
A :行尾插入(行尾)
o :下一行插入 (另起一行)
O :上一行插入(上一行插入)
x :向后删除一个字符 = delete
X :向前删除一个字符
u :撤销一步,每按一次就撤销一次
ctrl+r :恢复,每按一次就恢复一次
r :替换

4.2、在正常模式下做的操作

4.2.1 光标定位

hjkl:左下上右
0 和home键:切换到行首
$ 和end键:切换到行尾
gg:快速定位到文档的首行
G:快速定位到文档的未行
3gg或者3G:快速定位到第3行
/string(字符串) -----找到或定位你要找的单词或内容,如果相符内容比较多,我们可以通过N、n 来进行向上向下查找,并且vim会对查找到的内容进行高亮显示。取消高亮用 :noh或故意查一个不存在的内容
/^ d :意思表示以什么开头。这个等于查找以字母d开头的内容
/bash$:意思表示以什么结尾。这个等于查找以字母bash结尾的内容
vim + a.txt:打开文件后,光标会自动位于文件的最后一行。
vim +53 a.txt:打开文件后,光标会自动位于文件的第53行,方便后期排错。
如:服务器启动报错, 第53行,有语法错误。使用 vim +53 a.txt可以快速定位到53行。
分享心得:我更喜欢vim打开文件,然后按G,跳到最后。 因这个 vim + a.txt 技巧不常用,过一段时间肯定会忘。

4.2.2 在正常模式对文本进行编辑

删除、复制、粘贴、撤销
yy复制整行
Nyy:复制N行。比如: 2yy ,表示复制2行
dd:删除,以行为单位,删除当前光标所在行
Ndd:删除N行。比如: 2dd ,表示删除2行
p:P粘贴
dd:剪切
x:删除光标所在位置的字符
D:从光标处删除到行尾
u:撤销操作
ctrl+r:还原撤销过的操作,将做过的撤销操作再还原回去,也就是说撤销前是什么样,再还原成什么样
r:替换,或者说用来修改一个字符

4.3、Visual mode可视块模式

编程或修改服务器配置文件的时候,需要进行多行注释,会使用Visual 模式。

4.3.1 进入Visual模式的批量删除

方法如下:
删除:再按ctrl+v 进入列编辑模式;向下或向上移动光标;选中注释部分,然后按d,就会删除注释符号。
例:将 sshd_config 文件中17行到20行前面的#号删除

[root@Hengji ~]# vim /etc/ssh/sshd_config
改:
#Port 22
#AddressFamily any
#ListenAddress 0.0.0.0
#ListenAddress ::
为:
Port 22
AddressFamily any
ListenAddress 0.0.0.0
ListenAddress ::

4.3.2 进入Visual模式的批量修改

方法如下:
1)、ctrl+v 进入列编辑模式
2)、向下或向上移动光标,把需要注释、编辑的行的开头选中起来
4)、然后按大写的I
5)、再插入注释符或者你需要插入的符号,比如"#"
6)、再按 Esc,就会全部注释或添加了
例:在 sshd_config 文件中17行到20行前面加一个#号

改:
Port 22
AddressFamily any
ListenAddress 0.0.0.0
ListenAddress ::
为:
#Port 22
#AddressFamily any
#ListenAddress 0.0.0.0
#ListenAddress ::

4.4、命令行模式 Command-line操作技巧

4.4.1 Command-line

:w : 保存 save
:w! : 强制保存
:q : 没有进行任何修改,退出 quit
:q! : 修改了,不保存,强制退出
:wq : 保存并退出
:wq! : 强制保存并退出
:x : 保存退出
:e! : 复原,恢复到文件打开后,没有进行保存时的状态。 修改了很多,不想保存,想复原,按:e!
在正常模式下,按下大写的ZZ,也可以保存并退出

例: wq! 强制保存并退出

[root@Hengji ~]# ll /etc/shadow
----------. 1 root root 1179 8月  2 12:57 /etc/shadow
[root@Hengji ~]# vim /etc/shadow

调用外部文件或命令
语法:在命令行模式下输入:!+命令
例:在 vim编辑文档写要写入MAC地址

[root@Hengji ~]# cp /etc/passwd a.txt
[root@Hengji ~]# vim !$
:!ifconfig     #在vim中调用 ifconfig命令
:r /etc/hosts

4.4.2 文本替换

格式:范围(其中%所有内容) s分隔符 旧的内容 分隔符 新的内容 (分隔符可以自定义)
默认是每一行的第一个符合要求的词 (/g全部)

[root@Hengji ~]# vim a.txt
:1,3 s/bin/hengji                   #替换第1到3行中出现的第一个bin进行替换为hengji
:1,3 s/bin/hengji/g                 #替换第1到3行中查找到所有的bin进行替换为hengji
:3 s/hengji/aaaaa/g                 #只把第3行中所有hengji替换为aaaaa了
修改a.txt ,在文件中随意插入do和DO字符
:% s/do/hengji/g                    #将文本中所有的do替换成hengji
:% s/do/hengji/gi                   #将文本中所有的do替换成hengji, 并且忽略do的大小写
:% s@hengji@do@g                    #将文本中所有的hengji替换成do,替换时,也可以使用@做分隔符 

4.5、自定义 vim使用环境

4.5.1 临时设置

[root@Hengji ~]# vim a.txt 
:set nu     设置行号
:set nonu   取消设置行号
:noh        取消高亮显示 

4.5.2 永久设置环境

vim /etc/vimrc #设置后会影响到系统所有的用户
~/.vimrc #在用户的家目录下,创建一个.vimrc,这样只影响到某一个用户。
例1:临时定制vim开启显示行号功能

[root@Hengji ~]# echo "set nu" >  /root/.vimrc
[root@Hengji ~]# vim  /etc/passwd   #发现默认已经有行号了 

4.5.3 vim打开多个文件

方法1:以上下形势,打开两个文档

[root@Hengji ~]# vim -o /etc/passwd /etc/hosts 

注:输入 :qa 一次退出所有打开的文件

方法2:以左右方式打开两个文档

[root@Hengji ~]# vim -O /etc/passwd /etc/hosts

注:ctrl+ww 在两文档之间进行切换编辑。
大写O左右分屏,小写的o上下分屏

比较两个文件内容

[root@Hengji ~]# cp /etc/passwd mima.txt
[root@Hengji ~]# echo aaa >> mima.txt

方法1:

[root@Hengji ~]# diff /etc/passwd mima.txt  
40a41
> aaa

方法2:

[root@Hengji ~]# vimdiff /etc/passwd mima.txt

4.6、其它编辑器

nano编辑器
emacs编辑器
GHOME编辑器 gedit
例:

[root@Hengji ~]# gedit /etc/passwd
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Crazy_Hengji

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值