编辑器之神-vim 的常用命令 vi

**

1,编辑器之神-vim

**
编辑器之神-vim 的常用命令 vi_第1张图片
编辑器之神-vim 的常用命令 vi_第2张图片
编辑器之神-vim 的常用命令 vi_第3张图片
对服务器上的文件进行修改,使用ssh远程登录到服务器上,使用vim进行快速的编辑

1,打开文件
vim 文件名 如果文件存在,会直接打开该文件 。如果不存在,会新建一个
vim /path/to/somefile ::G
vim 文件名 +# :打开文件,并定位于第#行 例如:vim python.py +16
vim 文件名 +:打开文件,定位至最后一行
vim +/PATTERN : 打开文件,定位至第一次被PATTERN匹配到的行的行首
编辑器之神-vim 的常用命令 vi_第4张图片
2,关闭文件

末行模式
:q 退出 没有动过文件
:wq 保存并退出 动过了,不后悔
:x 保存并退出 动过了,不后悔
:q! 不保存并退出 动过了,后悔了
:w 保存
:w! 强行保存

命令模式
ZZ: 保存并退出 不需要冒号

3,编辑(输入)
i: 插入光标前一个字符
I: 插入行首
a: 插入光标后一个字符
A: 插入行未
o: 向下新开一行,插入行首
O: 向上新开一行,插入行首

4,命令模式

移动光标 
	字符
		h: 左
		j: 下
		k: 上
		l: 右
		
	单词
		w: word 移至下一个单词的词首
		e: 跳至当前或下一个单词的词尾
		b: back 跳至当前或前一个单词的词首

	行内
		0: 绝对行首
		^: 行首的第一个非空白字符
		$: 绝对行尾

	行间
		G:文章末尾
		3G:第3行 移动到数字对应行
		3gg:第3行 移动到数字对应行
		gg:文章开头

	翻屏
		Ctr-f:forward 向下翻一屏
		Ctr-b:back 向上翻一屏
		Ctr-d: 向下翻半屏
		Ctr-u: 向上翻半屏
		H head 屏幕顶部
		M middle 屏幕中间
		L low 屏幕底部
		
	段落移动
		{  上一段
		}  下一段
		
	括号切换
	在程序中() [] {}的使用频率很高,而且都是成对出现的
		% 括号匹配及切换

	标记
	如果某一段代码需要稍后处理,可使用m增加一个标记,在需要时快速跳转回来或执行其他编辑操作
	添加了标记的行如果被删除,标记同时被删除
	其他行添加了相同名称的标记,之前添加的标记会被替换掉
	mx:mark 添加标记x x是a-z或A-Z之间的任意一个字母
	'x:直接定位到标记x所在的位置

	选中文本(可视模式)
		v 可视模式 从光标位置开始按照正常模式选择文本
		V 可视行模式 选中光标经过的完整行
		ctrl + v 可视块模式 垂直方向选中文本
		扩展:可视模式下,可以和移动命令一起使用 ggVG能够选中所有内容
	
	删除&替换单个字符
		x: cut删除光标位置字符
		3x:删除光标开始3个字符
		r:替换光标位置字符 命令模式
		R:替换当前行光标后的字符 替换模式
		扩展:d 和 x 类似于图形界面剪切操作
	 R命令可以进入替换模式,替换完成后,按下ESC键可以回到命令模式
	 替换命令的作用就是不用进入编辑模式,对文件进行轻量级的修改

	删除命令:
		d: delete 删除移动命令对应的内容 (和移动命令一起使用)
		dw: 删除光标开始位置的字,包含光标所在字
		dd: 删除光标所在行,
		n dd 删除指定的行数 
		D: 删除光标后本行所有内容,包含光标所在字符

	撤销命令:
		u: undo一步一步撤销
		Ctr-r:  redo反撤销
		.: 重复上一次操作的命令

	复制粘贴&剪切
		y(移动命令) copy 复制
		yy: 复制当前行
		n yy 复制 n 行
		p: 在光标所在位置向下新开辟一行,粘贴
		vi中的文本缓冲区只有一个,如果后续做过复制,剪切操作,之前缓冲区的内容会被替换

	缩排和重复执行
		>> 向右增加缩进
		<< 向左减少缩进
		.  重复上次命令
		在可视模式下,缩排只需要使用一个>或者<
		前面的空格越少,代码的级别越高

	查找 /str 查找str
		查找到指定内容后,使用next查找下一个出现的位置
		n:查找下一个
		N:查找上一个
		如果不想看到高亮显示,可随便查找一个文件中不存在的内容即可
	
	单词快速匹配
		* 向后查找当前光标所在单词
		# 向前查找当前光标所在单词

编辑器之神-vim 的常用命令 vi_第5张图片
5,末行模式

set:设置
set nu 设置行号nu是number的缩写
set nonu 去除行号的意思nonu是nonumber的缩写

查找/
/after
n,N

执行命令
!ls -l

s查找并替换 需要在末行模式下执行

替换操作:
	r: 替换当前字符
	R: 替换当前行光标后的字符

s/str1/str2/gi
:%s///g 为查找并替换的命令格式
: %s/旧文本/新文本/g 为全局替换的命令格式
:s/旧文本/新文本/g 可视区域替换 要先选中替换文字的范围
: %s/旧文本/新文本/gc 为确认替换的格式 替换时会有提示
	y-yes替换 n-no不替换 a-all替换所有 q-quit退出替换
	l-last替换最后一个并把光标移动到行首 ^E向下滚屏 ^Y向上滚屏

	全局替换 
	/:临近s命令的第一个字符为边界字符:/,@,#
	g:一行内全部替换
	i:忽略大小写

-范围:
n:行号
.:当前光标行
+n:偏移n行
$:末尾行,$-3
%:全文

编辑器之神-vim 的常用命令 vi_第6张图片
编辑器之神-vim 的常用命令 vi_第7张图片
编辑器之神-vim 的常用命令 vi_第8张图片
扩展:在实际的开发中,可以使用w这个命令阶段性的备份代码

分屏命令属于末行命令编辑器之神-vim 的常用命令 vi_第9张图片

你可能感兴趣的:(vim)