Linux编辑神器——vim工具的使用

vim的模式

vim的三种模式

  • 命令模式

  • 插入模式

  • 退出模式

命令模式

1)调整vim的工作方式

复制代码
:set nu				#设置行号
:set nonu			#取消行号
:set mouse=a		#添加鼠标选择
:set cursorline		#设置行线

!NOTE

以上设置退出后再使用vim打开都会失效,原理是打开vim时会打开进程运行在内存中,当退出后就会释放掉

想要永久保存vim的工作方式需要编辑vim的配置文件/etc/vimrc

2)字符的搜索

复制代码
/关键字			#搜索到了会显示高亮关键字
n向下匹配
N向上匹配
:noh			  #取消高亮显示的关键字

3)字符的管理

复制代码
y				#复制
	yl			#复制1个字母
	y3y			#复制3个字母
	yw			#复制1个单词
	y3w			#复制3个单词
	yy			#复制1行
	y3y			#复制3行
	
d				#删除
	dl			#删除1个字母
	d3l			#删除3个字母
	dw			#删除1个单词
	d3w			#删除3个单词
	dd			#删除1行
	d3d			#删除3行  
	
c				#剪切
	cl			#剪切1个字母
	c3l			#剪切3个字母
	cw			#剪切1个单词
	c3w			#剪切3个单词
	cc			#剪切1行
	c3c			#剪切3行
#在剪切后vim会进入插入模式,如果要粘贴需要按【esc】退出插入模式然后按p粘贴

p		#粘贴
u		#撤回
ctrl+r	#恢复撤销

4)可视化模式

复制代码
#进入可视化模式
ctrl + v 

#在此模式可以通过上下左右键来选择区域按下对应键来实现对应操作
#y为复制,d为删除,c为剪切

#批量添加字符
1.ctrl + v 选中要加入字符所在的列
2.按大写I插入
3.输入要插入的字符
4.按esc

5)字符的替换

复制代码
:%s/sbin/fjwwwwwwwww/g		#替换全文的sbin为fjwwwwwwwww
:%s/:/@/g					#替换全文的 : 为@
:1,5s/:/@/g					#替换1-5行的 : 为@
:/adm/,/halt/s/:/@/g		#替换adm到halt之前的 : 为@
其中:
%s标示为所有的行
g标示为所有的列

6)vim的分屏功能

复制代码
#一个文件要保存为多个文件
ctrl+w s				#上下分屏
ctrl+w v				#左右分屏
ctrl+w c				#关闭光标所在屏幕 
ctrl+w 上下左右			 #光标移动到指定屏幕
:wq /root/Desktop/file2 	#保存到指定路径
#一次性编辑多个文件
:sp file2				#同时编辑当前文件和file2

一次性编辑多个文件也可以使用

bash 复制代码
vim -o file1 file2 			#上下模式打开两个文件
							#<ctrl>+<w> <上|下>来转换控制窗口

7)命令模式下光标的移动

复制代码
gg			#光标移动到文件的第一行
G 			#光标移动到文件的最后
:数字		   #移动到指 定的行数

插入模式

1)插入模式下光标的移动

复制代码
i				#光标所在位置插入
I				#光标所在行行首插入
o				#光标所在行下一行插入
O				#光标所在行的上一行插入
a				#光标所在字符的下一个字符插入
A				#光标所在行的行尾插入
s				#光标所在字符删除并插入
S				#光标所在行删除并插入

退出模式

复制代码
:q			#退出,文件内容未被修改时使用
:wq			#退出保存
:q!			#强制退出不保存,改变文件后不想保存时使用
:wq!		#强制退出保存 在对只读文件编写时使用,所编辑的文件要为当前用户的或者root用户的

处理vim的异常退出

当vim编写文件时在未保存更改内容被强制关闭,那么vim进入异常模式,当再次用vim打开文件后文件 出现异常

处理方法如下:

复制代码
#(O) 只读打开文件
#(E) 继续编辑
#(R) 恢复未保存内容编辑
#(D) 删除.swp文件进入编辑
#(Q) 退出当前文件编辑
#(A) 退出vim程序
相关推荐
ZHE|张恒4 小时前
Docker 安装 MinIO(20250422)
运维·docker·容器
神也佑我橙橙4 小时前
conda 创建虚拟环境的一些坑
linux·运维·conda
IT技术分享社区4 小时前
IT运维干货:lnav开源日志分析工具详解与CentOS实战部署
linux·运维·服务器·开源·centos
jc06205 小时前
4.5-中间件之Nginx
运维·服务器·nginx
IT曙光5 小时前
CentOS x86_64架构下载aarch64(arm64)包
linux·运维·centos
大海无量_949685 小时前
使用imapsync增量同步邮件到新邮局服务器
运维·服务器
bkspiderx5 小时前
Linux网络与路由配置完全指南
linux·运维·网络·c++
2301_810730105 小时前
Chrony服务器实验练习
运维·服务器
ssm11225 小时前
ubuntu服务器无法识别所有显卡
运维·服务器·ubuntu