vi编辑器学习

1、在没有图形界面的环境下,要编辑文件,vi是最佳选择,vi是Visual interface的简称

vi编辑器在系统管理、fugitive管理编辑文件时,其功能永远不是图形界面的编辑器能比拟的
vi的特点:
	没有图形界面的功能强大的编辑器
	只能编辑文本内容,不能对字体,段落进行排版
	不支持鼠标操作
	没有菜单
	只有命令
vim = vi improved
vim是从vi发展出来的文本编辑器,支持代码补全、编译及错误跳转等方便变成的功能,称为编辑器之神
在很多Linux发行版中,直接把vi做成vim的软链接

2、新建和打开文件

vi 文件名		如果文件不存在,会新建一个文件
vi 文件名 +行数		打开文件定位到指定行,只带上+不指定行号,会直接定位到文件末尾
在使用vi编辑文件 hello.py 时,异常退出,磁盘上可能会保存有交换文件 .hello.py.swp
再次用vi打开文件,会提示交换文件已存在,选择删除交换文件((D))选项即可

3、vi三种工作模式

打开文件 - > 命令模式 --> i (insert) 编辑模式(ESC返回命令模式)
		     --> : 末行模式(ESC返回命令模式) --> wq (write & quit) 关闭文件
3.1 命令模式
	打开文件首先进入命令模式,是使用vi的入口
	通过命令对文件进行常规的编辑操作,例如:定位、翻页、复制、粘帖、删除 ...
	其他图形编辑器下,通过快捷键或鼠标实现的操作,都在命令模式下实现
3.2 末行模式 -- 执行保存、退出等操作
	要退出vi返回控制台,需要在末行模式下输入命令
	末行模式是vi的出口
	w	write保存
	q	quit退出,如果没保存不允许退出
	q!	强退
	wq	保存并退出
	x	保存并退出
3.3 编辑模式 -- 正常的编辑文字

4、常用命令

注意:命令模式下注意关闭中文输入法,否则命令不好用
4.1 重复次数
4.2 移动和选择(多练)
	1) 上下左右
		H	左 
		J	下 
		K	上 
		L	右
	2) 行内移动
		w	向后移动一个单词 word
		b	向前移动一个单词 back
		0	行首
		^	行首第一个不是空白字符的位置
		$	行尾
	3) 行数移动
		gg	文件顶部 go
		G	文件末尾
		数字gg	移动到数字对应行数
		数字G	移动到数字对应行数
		:数字	移动到数字对应行数
	4) 屏幕移动
		ctrl+b	向上翻页 back
		ctrl+f	向下翻页 forward
		H	屏幕顶部 Head
		M	屏幕中间 Middle
		L	屏幕底部 Low			
	5) 段落移动
		使用空行来区分段落,通常一段功能相关的代码会写在一起
		{	上一段
		}	下一段
	6) 括号切换
		{}、[]、()等括号成对出现
		%	括号匹配及切换
	7) 标记
		开发时如果某一快代码需要稍后处理,此时先使用m增加一个标记,这样可以在需要时快速跳转
		标记名称可以是a-z或A-Z之间任意一个字母
		添加标记的行如果被删除,标记也被删除
		如果在其他行添加了相同的标记,之前添加的标记和会被替换掉
		mx	mark添加标记x
		'x	直接定位到标记x所在位置
	8) 选中命令 (可视模式)
		vi中提供3种可视模式,按ESC放弃选中,返回到命令模式
		v		可视模式	从光标位置开始按正常模式选择文本
		V		可视行模式	选中光标经过的完成行
		ctrl+v		可视块模式	垂直向下选中文本
		可视模式下可以和移动命令连用,例如: ggVG能选中所有内容
4.3 编辑操作
	删除
		x		cut 删除光标所在字符,或选中文字
		nx		删除光标处开始的n个字符		
		d		delete 删除移动命令对应的内容
		dd		delete 删除光标所在行,可以ndd复制多行
		D		delete 删除至行尾
		提示: 删除命令可以和移动命令连用,常见组合命令如下
		dw		光标位置删除到单词末尾
		d0		光标位置删除到起始位置
		d}		光标位置删除到段落结尾
		ndd		光标位置向下删除n行
		d代码行数G	光标所在行删除到指定代码行
		d`a		光标所在行删除到标记a之间所有代码

	复制、粘帖 
		y(移动命令)	copy 复制
		yy		复制一行,可以nyy复制多行
		p		paste 粘帖 np光标处向下粘帖n行
		注意: vi的缓冲区与系统的剪贴板不是同一个,别处使用ctrl+c复制的内容,可以在编辑模式下使用鼠标右键粘帖
	替换
		r		replace 替换当前字符 命令模式
		R		替换当前行光标后的字符 替换模式
	缩排和重复执行
		>>		向右增加缩进,一次性在选中的代码前增加4个空格
		<<		向左减少缩进,一次性在选中的代码前减少4个空格
		.		重复上次命令
		在可视模式下,缩排命令只需要使用一个 > 或者 <
4.4 撤销和重复
	u		undo 撤销上次命令
	ctrl+r		redo 恢复撤销的命令
4.5 查找
	/str		查找str
	n		查找下一个
	N		查找
	*		向后查找当前光标所在单词
	#		向前查找当前光标所在单词
4.6 查找并替换
	1) 命令格式
		:%s///g		查找并替换的固定格式
	2) 全局替换		
		:%s/旧文本/新文本/g	
	3) 可视区域替换
		先选中要替换文字的范围
		:s/旧文本/新文本/g
	4) 确认替换
		如果把末尾的g改成gc (c -> confirm),在替换的时候,会有提示,推荐使用
		:%s/旧文本/新文本/gc
		y	yes 替换
		n	no 不提换
		a	all 替换所有
		q	quit 退出替换
		l	last 作为最后一个替换,替换完成把光标移动到行首
		^E	向下滚屏
		^Y	向上滚屏
4.7 编辑
	进入编辑模式的6个命令
	i	insert 在当前字符钱插入文本 
	I	insert 在行首插入文本
	a	append 在当前字符后添加文本
	A	append 在行末添加文本
	o	在当前行后面插入一空行
	O	在当前行前面插入一空行
	#编辑命令和数字的连用 (进入编辑模式前不要输入数字)
		命令模式输入重复的次数10 按i进入编辑模式,输入print("python")回车,按ESC,会循环输入10次
	#利用可视块给多行代码增加注释
		python中的注释是#
		移动到要添加注释的第1行代码,按^来到行首
		按ctrl+v进入可视块模式
		使用j向下连续选中要添加的代码行
		输入I进入编辑模式,并在行首输入#
		按ESC回到命令模式

5、分屏命令

可以同时编辑和查看多个文件
:sp 文件名		split 横向增加分屏
:vsp 文件名		vertical split 纵向增加分屏
1) 切换分屏窗口
	分屏窗口都是基于 ctrl+w (window)这个快捷键的,然后再输入以下命令
	w	window 切换到下一个窗口
	r	reverse 互换窗口
	c	close 关闭当前窗口,但是不能关闭最后一个窗口
	q	quit 退出当前窗口,如果是最后一个窗口,则关闭vi
	o	other 关闭其他窗口

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值