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
查看编辑的文件
参考文章
发表评论