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程序
相关推荐
kk”6 小时前
Linux的组和权限管理
linux·运维·服务器
智购科技智能售货柜6 小时前
2026自动售货机整机可靠性测试:从高低温交变到EMC电磁兼容的认证工程实践~YH
运维·服务器·数据库·人工智能·物联网
mohesashou7 小时前
红帽linux的K8S部署
linux·kubernetes·ansible
xiaoye-duck8 小时前
《Linux网络编程》UDP Socket 编程实战:从 Echo 回显、通用字典服务到套接字封装全流程
linux·网络·udp
酒神dnspup8 小时前
CDN 回源检测怎么做?用 DNSPup 验证节点命中、源站暴露与多地可用性
运维·服务器·网络·网络协议·tcp/ip
Rain的Java大神之路8 小时前
短信接口被狂刷怎么处理
java·运维·后端·web安全·面试·架构·xss
江南风月9 小时前
3分钟快速上手日志审计系统 WGLOG v2.2 更新了什么
运维·服务器·网络
孙克旭_9 小时前
Docker 镜像构建|Vue+SpringBoot+Go 多语言项目 Dockerfile 案例
linux·运维·vue.js·spring boot·docker·dockerfile
life码农9 小时前
Linux截取Nginx指定时间段日志的三种方法(grep/awk/sed)
linux·nginx