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

devtools/2024/9/24 12:17:48/

vim_0">vim的介绍

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

vim_3">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是一个更先进、功能更丰富的文本编辑器,特别适合编程和开发使用。

安装方式:

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

vim_21">vim模式介绍

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

命令模式: 控制光标移动, 可对⽂本进⾏复制、粘贴、删除等⼯作。
使⽤vim filename 编辑⼀个⽂件时,⼀进⼊该⽂件就是命令模式了。
在这个模式下,可以进⾏光标移动、复制、删除、粘贴操作。编辑模式: 正常的⽂本写⼊。
从命令模式进⼊编辑模式,只需你按⼀个键即可(i, I, a, A, o, O, r, R)。
当进⼊编辑模式时,会在屏幕的最下⼀⾏出现“INSERT的字样。
从编辑模式回到命令模式只需要按键盘左上⽅的 ESC 键即可。末⾏模式: 保存或退出⽂档,以及设置编辑环境
在命令模式下,输⼊ ":" 或者 "/" 即可进⼊末⾏模式。
在该模式下,可以进⾏的操作有,显示⾏号、搜索、替换、保存、退出。

vim 编辑器配置⽂件整体流程如下:
1.默认打开⽂件处于命令模式
2.需要从命令模式切换⾄编辑模式
3.编辑模式修改配置⽂件, 然后返回命令⾏模式.
4.最后通过命令模式进⼊末⾏模式,保存和退出操作.
注意:在vim中,⽆法直接从编辑模式切换到末⾏模式

vim_49">vim命令模式

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

//命令光标跳转
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_85">vim编辑模式

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

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

vim_98">vim末行模式

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

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

末⾏模式(查找和替换)

查找	    /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视图模式

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

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

VIM环境变量

1.环境变量临时⽣效

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

2.环境变量永久生效

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

vim_171">vim拓展

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

http://www.ppmy.cn/devtools/2607.html

相关文章

【HCIP学习】OSPF协议基础

一、OSPF基础 1、技术背景(RIP中存在的问题) RIP中存在最大跳数为15的限制,不能适应大规模组网 周期性发送全部路由信息,占用大量的带宽资源 路由收敛速度慢 以跳数作为度量值 存在路由环路可能性 每隔30秒更新 2、OSPF协议…

100个Go语言典型错误

1 Go:入门容易,掌握难 1.1 Go 大纲 1.2 简单并不意味着容易 1.3 100 个 Go 错误 1.4 本章总结 2 代码和项目组织 2.1 意外的阴影变量 2.2 不必要的嵌套代码 2.3 滥用的 init 函数 2.4 过度使用 getters 和 setters 2.5 接口污染 2.6 在生产者端的接口 2.7 返回接…

云LIS系统源码,ASP.NET区域LIS系统源码,实验室信息系统

云LIS系统源码,ASP.NET区域LIS系统源码,实验室信息系统 LIS技术架构:ASP.NET CORE 3.1 MVC SQLserver Redis等 开发语言:C# 6.0、JavaScript 前端框架:JQuery、EasyUI、Bootstrap 后端框架:MVC、S…

Android零基础入门(二)gradle的安装和详解

如果你使用的SpringBoot项目,建议使用6.8及以上版本的Gradle。 下载 官网:https://gradle.org/releases/ 下滑选择一个版本,我选择了8.2 下载后解压到非C盘的自定义目录 插件版本 所需的Gradle版本 插件版本所需的Gradle版本centered 文…

nginx 前后的分离 负载均衡

首先前端随便访问后端的一个端口,后端监听这个端口进行服务转发。 比如:8888 VITE_APP_API_BASEURL http://192.168.10.111:8888 然后nginx在我们的服务器上部署两个后端 这里我用docker部署了两个 当然你也可以在两个服务器上面部署两个后端&#…

系统学c#3、基础语法--控制流程(判断、循环、方法、数组、集合)

判断语句(if、switch-case): if 语句 用于条件判断,其中包含一个布尔表达式,后面跟随着一段要执行的代码;当布尔表达式为true时,后面跟随的代码就会执行。 包括: 循环语句(for、wh…

【2024官方文档版】React快速入门

系列文章目录 一、快速入门【基础】 文章目录 系列文章目录前言一、快速入门【基础】1. 创建一个组件2. 组件嵌入3.添加样式4.显示数据5.条件渲染6.渲染列表7.响应事件8.更新页面9.使用Hook10.组件间共享数据 小结: 前言 偶然翻开React的官方文档。觉得蛮有意思&a…

C# 抽象类

C# 抽象类 在C#中,抽象类(Abstract Class)是一种特殊的类,它不能被实例化。相反,它通常作为基类,供其他类继承。抽象类可以包含抽象成员(抽象方法、抽象属性、抽象事件或抽象索引器&#xff09…