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程序
相关推荐
Johny_Zhao13 小时前
OpenClaw安装部署教程
linux·人工智能·ai·云计算·系统运维·openclaw
chlk1232 天前
Linux文件权限完全图解:读懂 ls -l 和 chmod 755 背后的秘密
linux·操作系统
舒一笑2 天前
Ubuntu系统安装CodeX出现问题
linux·后端
改一下配置文件2 天前
Ubuntu24.04安装NVIDIA驱动完整指南(含Secure Boot解决方案)
linux
碳基沙盒2 天前
OpenClaw 多 Agent 配置实战指南
运维
深紫色的三北六号2 天前
Linux 服务器磁盘扩容与目录迁移:rsync + bind mount 实现服务无感迁移(无需修改配置)
linux·扩容·服务迁移
SudosuBash3 天前
[CS:APP 3e] 关于对 第 12 章 读/写者的一点思考和题解 (作业 12.19,12.20,12.21)
linux·并发·操作系统(os)
哈基咪怎么可能是AI3 天前
为什么我就想要「线性历史 + Signed Commits」GitHub 却把我当猴耍 🤬🎙️
linux·github
十日十行4 天前
Linux和window共享文件夹
linux
木心月转码ing4 天前
WSL+Cpp开发环境配置
linux