• vim编辑器


    vim编辑器

    vi(visual interface)
    vim(vi improved)
    gvim(graph vim)

    vim

    	vim - Vi IMproved, a programmers text editor
    	vim [arguments] [file ..]       编辑指定文件(s)
    	vim [arguments] -               从标准输入读取text内容
    	vim [arguments] -t tag          编辑tag已被定义的文件
    	vim [arguments] -q [errorfile]  edit file with first error
    	Arguments:
    		--			仅跟随此后的文件名
    		-v			Vi 模式 (like "vi")
    		-e			Ex 模式 (like "ex")
    		-E			增强版的 Ex 模式
    		-s			沉默模式 (only for "ex")
    		-d			微分模式 (like "vimdiff")
    		-y			简单模式 (like "evim", modeless)
    		-R			只读模式 (like "view")
    		-Z			受限模式 (like "rvim")
    		-m			不被允许修正
    		-M			在text中的修正不被允许
    		-b			二进制模式
    		-l			模糊模式
    		-C			兼容 Vi: 'compatible'
    		-N			不充分兼容 Vi : 'nocompatible'
    		-V[N][fname]		详情 [level N] [log messages to fname]
    		-D			调试模式
    		-n			不使用交换分区文件,仅使用内存
    		-r			列出交换分区文件并退出
    		-r (with file name)	恢复毁坏的会话
    		-L			同 -r
    		-A			以阿拉伯语模式开始
    		-H			以希伯来语模式开始
    		-F			以波斯语模式开始
    		-T <terminal>	           设置终端类型为 <terminal>
    		-u <vimrc>		使用<vimrc> 代替任何的 .vimrc
    		--noplugin		不加载插件脚本
    		-p[N]		打开N个标签页(default: one for each file)
    		-o[N]		打开N个窗口(default: one for each file)
    		-O[N]		和-o 类似,但垂直划分
    		+			以文件最后开始
    		+<lnum>		以指定行开始
    		--cmd <command>	在加载任何vimrc文件前,执行命令
    		-c <command>		在加载第一个文件后执行命令
    		-S <session>		加载第一个文件后的源文件会话
    		-s <scriptin>	          从文件<scriptin>中读取正常模式命令
    		-w <scriptout>	附加所有类型命令到文件 <scriptout>
    		-W <scriptout>	写所有类型命令到文件<scriptout>
    		-x			编辑加密的文件
    		--startuptime <file>	写开始时间信息到文件
    		-i <viminfo>		使用 <viminfo> 取代.viminfo
    

    vim打开文件

    	+#:  	打开文件后 ,让光标处于第# 行的 行首,+ 默认行尾
    	+/ PATTERN :	打开文件后,直接让光标处于第一个被PATTERN 匹配到的行的行首
    	–b file  	二进制方式打开文件
    	–d file1 file2… 	比较多个文件
    	-m file 	只读打开文件
    	ex file 或 vim –e 	直接进入ex 模式
    	如果该文件存在,文件被打开并显示内容
    	如果该文件不存在,当编辑后第一次存盘时创建它
    

    vim 的三种主要模式:

    	命令(Normal) 模式: 	默认模式,移动光标,剪切/ 粘贴文本
    	插入(Insert):	编辑模式,修改文本
    	扩展命令(extended command ) 模式:	保存,退出等
    	Esc键退出当前模式
    	Esc键总是返回到命令模式
    

    vim的模式转换

        图中:
    		INSERT代表进行插入模式
    		ALL代表进入命令模式
    		VISUAL代表进行可视化模式
    		:代表进行扩展命令模式
    	进入命令模式(ALL)的方法
    		vim(vi)进入文本后就进入了命令模式
    		按ESC键退出其他模式同样就进入了命令模式
    	进入插入模式的方法
    		i: 	insert,  在光标所在处输入
    		I:	在当前光标所在行的行首 输入
    		a: 	append,  在光标所在处后面输入
    		A :	在当前光标所在行的行尾 输入
    		o:  	在当前光标所在行的下方打开一个新行
    		O :	在当前光标所在行的上方打开一个新行
    	进入可视化模式(VISUAL)的方法
    		按v键,进入面向字符的模式,提示为VISUAL,可进行字符级别的选择
    		按V键,进入面向行的模式,提示为VISUAL LINE,可进行到行级别的选择
    		按Ctrl + v|V,进入面向块的模式,提示为VISUAL BLOCK,可进行块级别的选择
    		进入可视化模式后,突出显示的文字可被删除d,复制y,过滤,搜索,替换等
    

    扩展模式进行的操作

    	按“: ”进入扩展模式
    	创建一个命令提示符: ,处于底部的屏幕左侧
    	命令:
    		w 	写(存)磁盘文件
    		wq 	写入并退出
    		x 	写入并退出
    		q  	退出
    		q! 	不存盘退出,即使更改都将丢失
    		r filename 	读文件内容到当前文件中
    		w filename 	将当前文件内容写入另一个文件
    		!command 	执行命令
    		r!command 	读入 命令的输出
    	地址定界:
    		:start_pos,end_pos
    		#  	具体第#行,例如2表示第2行
    		#,#  	从左侧#表示起始行,到右侧#表示结尾行
    		#,+# 	从左侧#表示的起始行,加上右侧#表示的行数
    		2,+3 	表示2到5行行
    		. 	当前行
    		$ 	最后一行
    		.,$-1  	当前行到倒数第二行
    		% 	全文,  相当于1,$
    		/pat1/,/pat2/	从第一次被pat1模式匹配到的行开始,一直到第一次被pat2 匹配到的行结束
    		#,/pat/	
    		/pat/,$	
    		使用方式:地址定界后再加个编辑命令
    			d	删除
    			y	复制
    			w file:  	将范围内的行另存至指定文件中
    			r file:	在指定位置插入指定文件中的所有内容
    	查找字符串:
    		/PATTERN :	从当前光标所在处向文件尾部查找
    		?PATTERN :	从当前光标所在处向文件首部查找
    		n :	与命令同方向
    		N :	与命令反方向
    	查找并替换:
    		满足正则表达式
    		s:  在扩展模式下完成查找替换操作
    			格式:<范围指定>s/ 要查找的内容/ 替换为的内容/ 修饰符
    				<范围指定>:指定从那个到那个进行查找替换。
    					N1,N2:表示从第N1行到N2行。
    					%:表示全部查找替换
    				要查找的内容:可使用模式
    				替换为的内容:不能使用模式,但可以使用1, 2, ...等后向引用符号;还可以使用“&”引用前面查找时查找到的整个内容
    				修饰符:
    					i:  忽略大小写
    					g: 对全局查找,默认情况下,每一行只替换匹配到的第一个
    					c: 每次替换前询问
    			分隔符“/”可以替换为其他字符,如“@”,“#”。
    				<范围指定>s@要查找的内容@替换为的内容@修饰符
    				<范围指定>s#要查找的内容#替换为的内容#修饰符
    		示例:
    			s@/etc@/var@g
    			s#/boot#/#i
    			%s#/boot#/#i
    

    命令模式进行的命令

    	ZZ:  	保存退出
    	ZQ:	不保存退出
    	字符间跳转:
    		h: 	左  
    		l: 	右 
    		j: 	下  
    		k: 	上 
    		#COMMAND :	跳转由#指定的个数的字符
    	单词间跳转:
    		w :	下一个单词的词首
    		e :	当前或下一单词的词尾
    		b :	当前或前一个单词的词首
    		#COMMAND :	由# 指定次跳转的单词数
    	当前页跳转:
    		H:	页首 
    		M:	页中间行
    		L: 	页底
    	行首行尾跳转:
    		^:  	跳转至行首的第一个非空白字符
    		0:  	跳转至行首
    		$:  	跳转至行尾
    	行间移动:
    		#G:	跳转至由#指定行
    		G :	最后一行
    		1G, gg:  	第一行
    	句间移动:
    		) :	下一句 
    		( :	上一句
    	段落间移动:
    		}: 	下一段 
    		{ :	上一段
    	翻屏操作
    		Ctrl+f:  	向文件尾部翻一屏
    		Ctrl+b:  	向文件首部翻一屏
    		Ctrl+d:  	向文件尾部翻半屏
    		Ctrl+u :	向文件首部翻半屏
    	字符编辑:
    		x:  	删除光标处的字符
    		#x:  	删除光标处起始的#个字符
    		xp:  	交换光标所在处的字符及其后面字符的位置
    		~: 	转换大小写
    		J: 	删除当前行后的换行符
    	替换命令(r, replace)
    		r:  	替换光标所在处的字符
    		R: 	切换成REPLACE 模式
    	删除命令:
    		d:  	删除命令,可结合光标跳转字符,实现范围删除
    		d$: 	删除到行尾
    		d^: 	删除到非空行首
    		d0: 	删除到行首
    		dd: 	删除光标所在的行
    		#dd:	多行删除
    		D:	从当前光标位置一直删除到行尾,留空行==d$
    		#COMMAND	#次操作上述操作
    	复制命令(y, yank): :
    		y:	复制
    		y$:	复制当前位置到行尾
    		y0:	复制当前位置到行头
    		y^:	复制当前位置到行首
    		yy :	复制行
    		#yy:  	复制多行
    		Y:  	复制整行
    		#COMMAND	#次上述操作
    	粘贴命令(p, paste): :
    		p:	缓冲区存的如果为整行,则粘贴当前光标所在行的下方;否则,则粘贴至当前光标所在处的后面
    	改变命令(c, change)
    		c:  	修改后切换成插入模式,命令模式 -->  插入模式
    		c$	
    		c^	
    		c0	
    		cc :	删除当前行并输入新内容
    		#cc:	
    		C :	删除当前光标到行尾,并切换成插入模式
    		#COMMAND	#次上述操作
    	技巧操作
    		<start position><command><end position>
    		Command:
    			y  复制、d  删除、gU  变大写、gu  变小写
    			ye  从当前位置拷贝到本单词的最后一个字符
    			示例
    				0y$  命令意味着:
    				0 →  先到行头
    				y →  从这里开始拷贝
    				$ →  拷贝到本行最后一个字符
    	撤消之前的更改
    		u 	撤销最近的更改
    		#u 	撤销之前多次更改
    		U  	撤消光标落在这行后所有此行的更改
    		Ctrl + r 	重做最后的“撤消”更改
    		.  	重复前一个操作
    		n. 	重复前一个操作n次
    

    编辑二进制文件

    	以二进制方式打开文件
    		vim –b binaryfile
    	扩展命令模式下,利用xxd 命令转换为可读的十六进制
    		:%!xxd
    	扩展命令模式下,利用xxd 命令转换回二进制
    		:%!xxd –r
    	保存退出:wq
    

    定制vim 的工作特性

    	配置文件:
    		进行永久有效的修改
    		全局:/etc/vimrc
    		个人:~/.vimrc
    	仅对当前vim 进程有效设置
    		“:”,进入扩展模式进行设置
    		(1)  行号设置
    			显示:set number,  简写为set nu
    			取消显示:set nonumber,  简写为set nonu
    		(2)  括号成对匹配设置
    			匹配:set showmatch,  简写为set sm
    			取消:set nosm
    		(3)  自动缩进设置
    			启用:set ai
    			禁用:set noai
    		(4)  高亮搜索设置
    			启用:set hlsearch
    			禁用:set nohlsearch
    		(5)  语法高亮设置
    			启用:syntax on
    			禁用:syntax off
    		(6)  忽略字符的大小写的设置
    			启用:set ic
    			不忽略:set noic
    		(7)  文件格式设置
    			启用windows 格式:set fileformat=dos
    			启用unix 格式:set fileformat=unix
    		(8)  设置文本宽度
    			:set textwidth=65 (vim only)
    			:set wrapmargin=15
    			:set 
    			:set all
    

    vim高级

    	多文件模式
    		vim FILE1 FILE2 FILE3 ...
    		文件选择:
    			:next  	下一个
    			:prev  	前一个
    			:first  	第一个
    			:last  	最后一个
    			:wall  	保存所有
    			:qall  	退出所有
    			:wqall	保存退出所有
    	多个“窗口”模式
    		多文件窗口分割:
    			vim -o|-O FILE1 FILE2 ...
    			-o	水平分割
    			-O	垂直分割
    			在窗口间切换	Ctrl+w(且按上下左右键)
    		单文件窗口分割:
    			Ctrl+w,s:	split, 水平分割
    			Ctrl+w,v	vertical,  垂直分割
    			ctrl+w,q 	取消相邻窗口
    			ctrl+w,o	取消全部窗口
    			:wqall 	退出
    	vim寄存器
    		vim(vi)有26 个命名寄存器和1个无命名寄存器,常存放不同的剪贴版内容,可以不同会话间共享
    		寄存器名称a ,b,…,z
    		格式:"字符
    			3"tyy  表示复制3 行到t 寄存器中
    			"tp 表示将t寄存器内容粘贴
    			未指定时将使用无命名寄存器
    		有10 个数字寄存器,用0 ,1 ,… ,9 表示,0存放最近复制内容
    			1 存放最近删除内容,当新的文本变更和删除时,1 转存到2,2 转存到3,以此类推,数字寄存器不能在不同会话间共享
    

    帮助

    	vim(vi)内置帮助
    		:help
    		:help topic
    		按q退出帮助
    	vimtutor命令可以进入练习模式
    
  • 相关阅读:
    KVM 开启嵌套虚拟化
    我非要捅穿这 Neutron(三)架构分析与代码实现篇(基于 OpenStack Rocky)
    我非要捅穿这 Neutron(二)上层资源模型篇
    我非要捅穿这 Neutron(一)网络实现模型篇
    Cinder 架构分析、高可用部署与核心功能解析
    php学习笔记-echo输出html代码
    php学习笔记-echo怎么换行
    php学习笔记-echo的用法
    php学习笔记-php简单的语法入门
    sololearn这个app很不错
  • 原文地址:https://www.cnblogs.com/shenxm/p/8378083.html
Copyright © 2020-2023  润新知