Linux文件管理 vim编辑

什么是vim?

VIM就是一个文本编辑器

如何安装

yum install -y vim

vim工作模式

命令模式(普通模式)

编辑文件 最开始 不能输入内容的时候
	光标的跳转
		gg 
			将文件的光标跳转到第一行
		G(shift+g)
			将文件的光标跳转到最后一行
		Ngg 
			N :代表数字 切换到指定的行数
		$: 切换到光标所在行的行末
		^II 0
			切换到光标所在行的行首
	翻页
		ctrl+f 
			向上翻页
		ctrl+b
			向下翻页
	复制粘贴
		yy
			复制(将光标所在行,一整行复制)
		p
			粘贴(将内容粘贴在光标所在行的下一行)
		yNy || Nyy
			复制多行内容 光标所在行及以下行数内容
		P (大p)
			粘贴(将内容粘贴在光标所在行的上一行)
	删除剪切
		dd
			剪切或者删除(光标所在行一整行内容)按p 可以粘贴回剪切的内容
		dNd || Ndd 
			指定删除多行内容 删除光标所在行及以下内容
		dNG
			删除光标所在行及指定下行数内容
		dG
			删除光标所在行及以下所有的内容一直到文件末尾
		D
			删除光标所在行的光标之后的内容(包括光标所在内容)
		x
			剪切或删除光标所在的一个字符
		X
			剪切或删除光标所在字符的前一个字符
		u
			撤销,返回上一次的修改内容
		r 
			替换光标所在字符(只能替换一个)
		R
			替换光标所在字符之后的所有内容(一个字符一个字符的替换,按ESC停止替换)
		ctrl+r
			恢复撤销内容
		shift+zz
			保存退出

命令模式跳转编辑模式(输入模式)

i
	在当前光标字符前进入编辑模式
o
	在当前光标所在行另起一行进入编辑模式
O
	在当前光标所在行上一行进入编辑模式
A
	在当前光标所在行的行末进入编辑模式
a
	在当前光标之后进入编辑模式
I
	在当前光标所在行的行首进入编辑模式
s
	将当前光标所在字符删除并进入编辑模式
S
	将当前光标所在行 整行的内容都删除并进入编辑模式

末行模式

编辑模式无法切换成末行模式
编辑模式切换成命令模式 ===》ESC
命令模式切换成末行模式===》:
保存退出
	:wq
		w: write(写入,保存) q : quit 退出
	:q! 
		强制退出不保存内容
	:wq!
		强制保存并退出
	:x
		保存退出
显示/取消行号
	:set number
		简写: set nu
	: set nonumber
		简写 :set nonu
跳转指定行
	:number
		例如:10  跳转到第10行
查找和替换
	/字符串
		查找指定内容
	n
		查找下一个
	N
		查找上一个
	:%s###gc
		%:匹配所有行
		s :查找并替换
		g :替换所有匹配到的内容(如果不加g,每行只替换第一个匹配到的内容)
		c :挨个提示是否要替换
			例如输完之后的其中一个例子 :replace with sshd(y/n/a/q/l/^E/^Y)?
				y :替换
				n: 不替换
				a :全部替换
				q: 退出 离开
				l :替换一次并退出
另存为
	:w+路径
读入文件
	:r +路径
	:Nr
		例如:2r
			指定在该文件的第二行内容之后读入指定文件内容

视图模式

批量注释或者批量删除列内容
	1.ctrl+v 进入视图模式(块模式)
		shift+V 进入视图模式(行模式) 用的比较少
	2.按↓
	3.shift+i (I)
	4.按shift+3(#)
	按ESC (其中里面如果需要删除可以按x)

VIM 扩展内容

+num
	vim +5 文件名
		编辑该文件的第五行内容
同时编辑两个内容
	vim -o 文件1 文件2
		水平拆分编辑两个文件
	vim -O 文件1 文件2
		垂直拆分编辑两个文件
	ctrl +ww 
		切换两个文件
比较两个文件内容
	vimdiff a.yaml b.yaml