一、重复次数
在命令模式下,先输入一个数字,再跟上一个命令,可以让该命令重复执行指定次数
二、移动和选择
vi之所以快,关键在于能够快速定位到要编辑的代码行
移动命令能够和编辑操作命令组合使用
方向键:j、k、h、l(下上左右)
1、移动(文本)
(1)行内移动
(2)行数移动
(3)屏幕移动
2、移动(程序)
(1)段落移动
在程序开发时,通常一段功能相关的代码会写在一起——之间没有空行
(2)括号切换
在 [ ],( ),{ }中进行切换
(3)标记
在开发时,某一块代码可能需要稍后处理,此时可以先用m添加一个标记,这样可以在需要时奎宿的跳转回来或执行其他编辑操作。
添加了标记的行如果被删除,标记同时被删除;如果在其他行添加了相同名称的标记,之前添加的标记也会被替换掉。
3、选中文本(可视模式)
在vi中要先选择文本,需要先使用Visual命令切换到可视模式,vi中有三种可视模式
使用ESC可以放弃选中,返回到命令模式
三、编辑操作
删除、复制、替换、缩排
1、删除文本
和移动命令结合:如dw,d+行数+gg
可视模式下,可以和移动命令连用,如ggVG能够选中所有内容,常见组合如下:
2、复制、粘贴
命令d、x类似于图形界面的剪切操作——ctrl+x
命令y类似于图形界面的复制操作——ctrl+c
命令p类似于图形界面的粘贴操作——ctrl+v
vi的文本缓冲区只有一个,如果后续做过复制、剪切操作,之前缓冲区的内容会被替换
<注>vi的文本缓冲区和系统的剪贴板不是用一个
在其他软件中使用CTRL+C复制的内容,不能在vi中通过p命令粘贴
可以在编辑模式下使用鼠标右键粘贴
3、替换
R命令可以进入替换模式,替换完成后,按下ESC可以回到命令模式
替换命令的作用就是不用进入编辑模式,对文件进行轻量级的修改
4、缩排
缩排命令 在开发程序时,统一增加/减少代码的缩进
在可视模式下,缩排命令只需要使用一个 > 或者 <
四、撤销和重复
五、查找替换
1、查找字符串或单词
(1)常规查找
查找到指定内容之后,使用Next查找下一个出现的位置:
n:查找下一个
N:查找上一个
如果不想看到高亮显示,可以随便查找一个文件中不存在的内容即可
(2)单词快速匹配
通过单词快速匹配,可以快速地看到这个单词在其他什么位置使用过
2、查找并替换
在vi中查找和替换命令需要在末行模式下执行
命令格式:
:%s///g
(1)全局替换
一次性替换文件中所有出现的旧文本
:%s/旧文本/新文本/g
(2)替换可视区域
先选中要替换文字的范围
命令格式如下:
:s/旧文本/新文本/g
(3)确认替换
如果把末尾的g该成gc,在替换的时候会有提示
:%s/旧文本/新文本/gc
y - yes 替换
n - no 不替换
a - all 替换所有
q - quit 退出替换
l - last 最后一个,并把光标移到行首
^E 向下滚屏
^Y 向上滚屏
六、编辑
1、进入编辑模式的6个命令
在vi中除了常用的 i 进入编辑模式外,还提供了以下命令同样可以进入编辑模式
eg1:编辑命令和数字命令连用
如连续输入十个*
(1)输入10,表示要重复10次
(2)输入 i 进入编辑模式
(3)输入 * ,也就是要重复的文字
(4)按ESC键返回到命令模式,返回之后 vi 就会把2、3步的操作重复十次
<正常开发时,在进入编辑模式之前,不要按数字>
eg2:利用可视化给多行代码增加注释
要实现这个效果可以在命令模式下:
(1)移动到要添加注释的第一行代码,按^来到行首
(2)按CTRL+ v 进入可视块模式
(3)使用 j 向下连续选中要添加的代码行
(4)输入 I 进入编辑模式,并在行首插入 (可视块模式 一定要使用大 I )
(5)输入 # 也就是注释符号
(6)按下ESC返回到命令模式,返回后 vi 会在之前选中的每一行代码前插入 #
2、分屏命令
属于 vi 的高级命令——可以同时编辑和查看多个文件
(1)末行命令扩展
末行命令 主要是针对文件进行操作的:保存、退出、保存&退出、搜索&替换、另存、新建、浏览文件等
:e 文件名 打开另外的文件
:w 文件名 可以用来进行阶段性备份
<切换文件之前,必须保证当前这个文件已经被保存>
(2)分屏命令
使用分屏命令,可以同时编辑和查看多个文件
切换分屏窗口
分屏窗口都是基于 先使用 CTRL+W 这个快捷键,W 对应的英文是window