VI 和 VIM 命令的区别

VIM 是 vi 的升级版本,除了兼容 vi 的所有指令,VIM 还具有一些新的特性,主要体现在:

多级撤销 在 vi 里,按 u 只能撤消上次命令,而在 VIM 里可以无限制的撤消。 易用性 vi 只能运行于 unix 中,而 VIM 不仅可以运行于 unix,windows ,mac 等多操作平台。 语法加亮 VIM 可以用不同的颜色加亮显示代码。 可视化操作 VIM 不仅可以在终端运行,也可以运行于 x window、 mac os、 windows。

VIM 三种模式操作

命令模式

终端输入 vim 文件名 进入 主要操作:

删除、复制、粘贴等操作光标移动搜索字符串……

语法功能描述yy复制光标所在的一行y 数字 y 或 数字 yy从光标所在行开始复制几行y $(y shift+4)复制光标开始到行尾y ^(y shift+6)复制光标开始到行首yw复制一个词(从光标断开复制光标后部分)p粘贴u撤销上一步d删除指定范围内的文本的命令,可在末行模式配合:4,9 d使用表示删除4-9行dd删除光标所在行(剪切)dw删除一个词(从光标断开复制光标后部分)d $(d shift+4)删除光标开始到行尾d ^(d shift+6)删除光标开始到行首w光标移动到下一个单词首部e光标移动到当前单词尾部b光标移动到上一个单词首部d 数字 d 或 数字 dd删除光标(含)后多少行x剪切一个光标后的字母X剪切一个光标前的字母r替换光标所在位置的字符R开启替换模式,可连续替换字符shift+6(^)光标移动到行头shift+4 ($)光标移动到行尾gg光标移动到页头G光标移动到页尾数字 G光标移动到第几行5 ➡光标向右移动5个字符 输入 i,a 或者 o 进入编辑模式 输入 : 或 / 进入末行模式

编辑模式(输入模式)

主要操作:编辑文本 按下 esc 键进入一般模式 进入编辑模式方法

按键功能i当前光标前a当前光标后o当前光标的下一行(添加一行)I光标所在行首A光标所在行尾O当前光标的上一行(添加一行)

末行模式

回车键确认 对于整体文档进行操作 主要操作(前面都有 :) wq,q 或 q!

命令功能:w保存,可指定保存的路径文件名:q退出:wq保存并推出:wq!只读文件强制保存并退出:q!不保存强制退出:r /etc/passwd将/etc/passwd 文件内容读取到当前文件中/要查找的词(可以无需 : 直接 / 进入)高亮显示,n向下查找,N向上查找:noh取消高亮:set nu显示行号:set nonu关闭行号:s/要替换的字符串/替换后的字符串 替换当前行匹配的第一个字符串:s/old/new/g替换当前行所有 old 字符串为 new:%s/old/new/g替换文档中全部字符串 old 为 new:1,10 s/root/AJEST/g在第1 行到第10 行中查找root,并替换为AJEST:50,100选中50到100行,后面可接命令模式的d,y等命令表示对50到100行进行操作:! whoami调用bash 命令 按下 esc键进入命令模式

vim 键盘图

使用示例

在/tmp 目录中建立一个名为man_db.conf 的文件。 touch /tmp/man_db.conf

在 /tmpman_db.conf 文件中读取/etc/man_db.conf 的内容,并删除第一个空白行。

vim 进入文件 vim /tmp/man_db.conf

读取内容 # 末行模式下

:r /etc/man_db.conf

移动到第一行 # 命令模式下

gg

删除该行 # 命令模式下

dd

设定显示行号。 # 末行模式下

:set nu

移动到第58 行并且向右移动5 个字符,会看到privileges。

光标移动到第 58 行 # 命令模式下

58G

光标向右移动 5 个字符 5→

移动到第一行并向下搜索displayed 字符串,出现在106 行。

移动到第一行 # 命令模式下

gg

搜索 displayed 字符串 #末行模式下

/displayed

将50 - 100 行小写的man 替换成大写的MAN。 # 末行模式下

:50,100 s/man/MAN/g

执行前 执行后 替换完成后恢复。 # 命令模式下

u

复制65 - 73 行内容并且粘贴到最后一行下面。

方法1 #命令模式下

#光标移动至 65 行

65G

#复制 65-73 共 9 行

9yy

#移动至页尾

G

#粘贴

p

方法2 # 末行模式下

#复制 65-73 行

:65,73 y

#命令模式下

#移动至行尾

G

#粘贴

p

删除21 - 42 行内容。 # 末行模式下

:21,42 d

删除前 删除后 将文件另存为man.test。 # 末行模式下

:w /home/gjl/Desktop

将27 行删除21 个字符,如成功应该光标停留在all 的位置。

选中 27 行 # 命令模式下

27 G

删除前 21 个字符 # 命令模式下

# x 删除光标后的字符,X 删除光标前的字符

21 x

在第一行上面新增一行内容为i am a good student。

光标移动至第一行 # 命令模式下

gg

按下 i 键进入输入模式 输入字符 存储并退出。 # 末行模式下

:wq

查看编辑的文件

参考文章

评论可见,请评论后查看内容,谢谢!!!评论后请刷新页面。