Linux 中 V(Vim)常用命令使用说明

版权声明:转载请注明来源 https://blog.csdn.net/qq_24598601/article/details/84062969

  在linux发行版中vi 命令已经软链接到了vim

一、vi的三种工作模式:命令模式、末行模式、编辑模式

工作模式

1. 末行模式命令

w:(write)保存
q:(quit)退出,如果没有保存不允许退出
q!:(quit)强行退出,不保存退出
wq:(write&quit)保存并退出
x: 保存并退出
:e:(edit)会打开内置浏览器浏览当前目录下的文件,后面加文件名就会打开该文件
:n 文件名:(new)新建文件
:w 文件名:(write)另存为,但是仍然编辑当前文件,并不会切换文件

二、打开或新建文件

说明:打开一个文件,文件不存在则新建一个文件
命令:vi 文件名

1. 打开文件并且定位行

说明:打开一个文件并且定位到指定行数,不指定行数则定位到文件末尾
命令:vi 文件名 +行数

三、常用命令(命令模式下使用)

1. 重复次数

  在命令模式下,先输入一个数字再跟上一个命令,可以让该命令重复执行指定次数。

2. 移动和选择

2.1 移动
行间移动命令:
行间移动命令

行内移动命令:
行内移动命令

行数移动命令:
行数移动命令

屏幕移动命令:
屏幕移动命令

段落移动命令:
  vi中用空行来区分段落,在程序开发过程中,通常一段功能相关的代码会放到一起(一个段落)。
命令	功能{	上一段}	下一段

括号切换命令:
命令	功能%	括号匹配及切换

标记命令:
命令	英文	功能mx	mark	添加标记x,x是a-z或A-Z之间的任意字符‘x		直接定位到标记x所在的位置

2.2 选择(可视模式)
命令	模式	功能v	可视模式	从光标位置开始按照正常模式选择文本V	可视行模式	选中光标经过的完整行ctrl + v	可视块模式	垂直方向选中文本

  可视模式下,esc可退出可视模式,还可和移动命令连用,例如ggVG能够选中所有内容。

3. 编辑操作

3.1撤销和恢复撤销
命令	英文	功能u	undo	撤销上次命令ctrl + r	redo	恢复撤销的命令

3.2 删除文本
命令	英文	功能x	cut	删除光标所在字符,或选中文字d(移动命令)	delete	删除移动命令对应的字符dd	delete	删除光标所在行,可以ndd复制多行D	delete	删除至行尾

  如果使用可视模式已经选中了一段字符,那么使用d或者x都可以删除选中字符。
删除命令可以和移动命令连用,例如
删除命令和移动命令连用
3.3 复制粘贴
命令	英文	功能y(移动命令)	copy	复制yy	copy	复制一行,可以nyy复制多行p	paste	粘贴

  复制粘贴是在一个文本缓冲区,没有使用系统的剪切板,所有用其他软件ctrl + c/x 复制剪切到系统的剪切板,再到vi中p粘贴是不能粘贴系统剪切板的内容的。如果想将系统剪切板的内容粘贴到vi中,需要进入编辑模式使用ctrl + v才能将内容粘贴。

  vi中的删除操作本质上就是剪切,只是没有使用p粘贴。

4. 撤销和重复

4.1 缩排和重复
缩排和重复

5. 查找和替换

5.1替换
替换

  R命令可进入替换模式,替换完后esc退出替换模式进入命令模式
替换命令的作用就是在不用进入编辑模式,对文本进行轻量级修改。

5.2 查找
查找

/str查找完之后,按n查找下一个,按N查找上一个

5.3 查找并替换
  查找并替换需要在末行模式下执行
  基本的记忆格式::%s///g

5.3.1 全局替换所有的旧文本内容:
  :%s/旧文本内容/新文本内容/g

5.3.2 可视区域替换:
第一步:先选中要替换的文字范围;
第二步:执行命令:: s/旧文本内容/新文本内容/g;注意去掉命令间的空格

5.3.3 确认替换:
  :%s/旧文本内容/新文本内容/gc
  y-替换,n-不替换,a-替换全部,q-退出,l-最后一个替换,^ E-向上滚屏,^ Y-向下滚屏;

6. 编辑

  从命令模式进入编辑模式的命令
命令	英文	功能	常用i	insert	在当前字符前插入文本	常用I	insert	在行首插入文本	较常用a	append	在当前字符后插入文本	A	append	在行末插入文本	较常用o		在当前行后面插入一空行	常用O		在当前行前面插入一空行	常用

7. 分屏命令

分屏命令:
命令	英文	功能:sp [文件名]	split	横向增加分屏:vsp [文件名]	vertical split	纵向增加分屏

切换分屏命令:
命令	英文	功能w	window	切换下一个窗口r	reverse	互换窗口c	close	关闭当前窗口,但不关闭最后一个窗口q	quit	退出当前窗口,如果是最后一个窗口则关闭o	other	关闭其他窗口

猜你喜欢

转载自blog.csdn.net/qq_24598601/article/details/84062969