vi编辑器的用法linux中的vim编辑器大全

vim的介绍

vi 和 vim 命令是linux中强⼤的⽂本编辑器, 由于Linux系统⼀切皆⽂件,⽽配置⼀个服务就是在修改其配置⽂件的参数。 vim 编辑器是运维⼯程师必须掌握的⼀个⼯具, 没有它很多⼯作都⽆法完成。

其中有vivim两种

vi和vim的区别

Vim是Vi的升级版本,不仅兼容Vi的所有指令,还增加了许多新特性。Vim和Vi的主要区别包括:

1.多级撤消。在Vi中,按u只能撤消上次命令,而在Vim中可以无限制地撤消操作。

平台兼容性。Vi主要运行于Unix系统;Vim不仅可以在Unix上运行,还可以在Windows、Mac等多个操作系统上运行。

2.语法高亮。Vim可以以不同的颜色加亮显示代码,这有助于提高阅读和编辑的便利性。

可视化操作。Vim不仅可以在终端运行,还可以在X Window、Mac OS、Windows等环境下运行,提供更丰富的编辑环境。

总的来说,Vim相比Vi是一个更先进、功能更丰富的文本编辑器,特别适合编程和开发使用。

安装方式:

python 复制代码
1. vi不需要安装,直接可以使用
2. vim 用yum装  `yum install -y vim` 即可

vim模式介绍

Vim编辑器中设置了三种模式: 命令模式、编辑模式、末⾏模式 ,每种模式分别⼜⽀持多种不同的命令快捷键,⼤⼤提⾼了⼯作效率,⽽且⽤户在习惯之后也会觉得相当顺⼿。要想⾼效率地操作⽂本,就必须先搞清这三种模式的操作区别以及模式之间的切换⽅法。

命令模式: 控制光标移动, 可对⽂本进⾏复制、粘贴、删除等⼯作。
使⽤vim filename 编辑⼀个⽂件时,⼀进⼊该⽂件就是命令模式了。
在这个模式下,可以进⾏光标移动、复制、删除、粘贴操作。


编辑模式: 正常的⽂本写⼊。
从命令模式进⼊编辑模式,只需你按⼀个键即可(i, I, a, A, o, O, r, R)。
当进⼊编辑模式时,会在屏幕的最下⼀⾏出现"INSERT的字样。
从编辑模式回到命令模式只需要按键盘左上⽅的 ESC 键即可。


末⾏模式: 保存或退出⽂档,以及设置编辑环境
在命令模式下,输⼊ ":" 或者 "/" 即可进⼊末⾏模式。
在该模式下,可以进⾏的操作有,显示⾏号、搜索、替换、保存、退出。

vim 编辑器配置⽂件整体流程如下:

1.默认打开⽂件处于命令模式

2.需要从命令模式切换⾄编辑模式

3.编辑模式修改配置⽂件, 然后返回命令⾏模式.

4.最后通过命令模式进⼊末⾏模式,保存和退出操作.

注意:在vim中,⽆法直接从编辑模式切换到末⾏模式

vim命令模式

命令⾏模式:(默认打开⽂件进⼊的是命令⾏模式)

python 复制代码
//命令光标跳转
G			跳转光标⾄末端
gg		跳转光标⾄顶端
Ngg	跳转光标⾄当前⽂件内的22⾏
$			将当前光标跳转⾄光标所在⾏的末端(尾部)
^			将当前光标跳转⾄光标所在⾏的头部		--->	数字0 可实现类似效果
//⽂件内容较多
ctrl+f		往下翻⻚(⾏⽐较多)		
ctrl+b		往上翻⻚
//复制				
yy复制当前光标所在的⾏
5yy复制当前光标以及光标向下4⾏
							
//粘贴		
p(⼩写) 粘贴⾄当前光标下⼀⾏			
P(⼤写) 粘贴⾄当前光标上⼀⾏
//删除			
dd		删除当前光标所在的⾏			
4dd	删除当前光标所在的⾏以及往下的3⾏
dG		删除当前光标以后的所有⾏
D			删除当前光标及光标以后的内容		
x			删除当前光标标记往后的字符
X			删除当前光标标记往前的字符
//剪贴
先删除dd(number	dd),后粘贴p
//撤销
u			撤销上⼀次的操作(类似windows下的ctrl+z)
//替换				
r			替换当前光标标记的单个字符
R			进⼊REPLACE模式,	连续替换,ESC结束

vim编辑模式

编辑模式(从命令⾏模式进⼊到编辑模式)

python 复制代码
i			进⼊编辑模式,光标不做任何操作
VIM编辑模式
I			进⼊编辑模式,并且光标会跳转⾄本⾏的头部
a			进⼊编辑模式,将当前光标往后⼀位
A			进⼊编辑模式,将光标移动⾄本⾏的尾部
o			进⼊编辑模式,并在当前光标下添加⼀⾏空⽩内容
O			进⼊编辑模式,并在当前光标上添加⼀⾏空⽩内容

vim末行模式

末⾏模式主要⽤于搜索, 保存, 退出⽂件, 还可以让⽤户执⾏外部的Linux命令或跳转到所编写⽂档的特定⾏数

末⾏模式(必须退回到命令⾏模式)

python 复制代码
E37: No	write	since	last	change	(add	!	to	override)
:w						保存当前状态
:w!					强制保存当前状态
:q						退出当前⽂档(⽂档必须保存才能退出)
:q!					强制退出⽂档不会修改当前内容
:wq					先保存,在退出
:wq!				强制保存并退出
:x						先保存,在退出
ZZ						保存退出,	shfit+zz
:number 跳转⾄对应的⾏号

末⾏模式(查找和替换)

python 复制代码
查找	    /string	需要搜索的内容(查找)
		n 按搜索到的内容依次往下进⾏查找
		N 按搜索到的内容依次往上进⾏查找
替换
	:1,5s#sbin#test#g			替换1-5⾏中包含sbin的内容为test
	:%s#sbin#test#g 替换整个⽂本⽂件中包含sbin的替换为test
	:%s#sbin#test#gc		替换内容时时提示是否需要替换
另存
:w	/root/test		将⽂件所有内容另存为/root/test
				
读⼊
:r		/etc/hosts		读⼊/etc/hosts⽂件⾄当前光标下⾯
:5r	/etc/hosts		指定/etc/hosts⽂件当前⽂件的哪⾏下⾯

VIM视图模式

视图模式(从命令⾏模式进⼊视图模式)

python 复制代码
ctrl+v	进⼊VISUAL	BLOCK	选中需要注释的⾏(可视块模式)
		1.插⼊:按shift+i进⼊编辑模式,输⼊#,结束按ESC键
		2.删除:选中内容后,按x或者d键删除
		3.替换:选中需要替换的内容,	按下r键,然后输⼊替换后的内容
shift+v	进⼊VISUAL	LINE	选中⾏内容(可视⾏模式)
		1.复制:选中⾏内容后按y键及可复制。
		2.删除:选中⾏内容后按d键删除。

VIM环境变量

1.环境变量临时⽣效

python 复制代码
:set	nu	显示⾏号
:set	ic	忽略⼤⼩写,	在搜索的时候有⽤
:set	ai	⾃动缩进
:set list			显示制表符(空⾏、tab键)
:set no[nu|ic|ai...]		取消临时设定的变量
环境变量永久⽣效
~/.vimrc	个⼈环境变量(优先级⾼)	/etc/vimrc		全局环境变量

2.环境变量永久生效

python 复制代码
#	vim		~/.vimrc			
set nu
set	ic
//如果个⼈vim环境没有配置,	则使⽤全局vim环境变量配置。
//如果个⼈vim环境和全局环境变量产⽣冲突,	优先使⽤个⼈vim环境变量。

vim拓展

python 复制代码
1.如何同时编辑多个⽂件
vim	-o	file1	file2	⽔平分割
vim	-O	file1	file2	垂直分割
//ctrl+ww	⽂件间切换

2.相同⽂件之间差异对⽐
diff		⽂件对⽐(⽤的不多)				
vimdiff		以vim⽅式打开两个⽂件对⽐,标记不同的内容

3.如果VIM⾮正常退出 (ctrl+z)挂起或强制退出终端没关闭VIM后
//删除同⽂件名的.swp⽂件即可解决
.filename.swp			rm	-f	.filename.swp
相关推荐
C-cat.几秒前
Linux|环境变量
linux·运维·服务器
yunfanleo15 分钟前
docker run m3e 配置网络,自动重启,GPU等 配置渠道要点
linux·运维·docker
糖豆豆今天也要努力鸭1 小时前
torch.__version__的torch版本和conda list的torch版本不一致
linux·pytorch·python·深度学习·conda·torch
烦躁的大鼻嘎1 小时前
【Linux】深入理解GCC/G++编译流程及库文件管理
linux·运维·服务器
ac.char1 小时前
在 Ubuntu 上安装 Yarn 环境
linux·运维·服务器·ubuntu
敲上瘾1 小时前
操作系统的理解
linux·运维·服务器·c++·大模型·操作系统·aigc
长弓聊编程1 小时前
Linux系统使用valgrind分析C++程序内存资源使用情况
linux·c++
nbsaas-boot1 小时前
如何利用ChatGPT加速开发与学习:以BPMN编辑器为例
学习·chatgpt·编辑器
cherub.1 小时前
深入解析信号量:定义与环形队列生产消费模型剖析
linux·c++
梅见十柒2 小时前
wsl2中kali linux下的docker使用教程(教程总结)
linux·经验分享·docker·云原生