文章目录
常用命令
提示
使用vi命令时,注意关闭中文输入法
1.1移动
- 要熟练使用vi,首先应该学会怎么在命令模式下快速移动光标
- 编辑操作命令,能够和移动命令结合在一起使用
- 上、下、左、右
h 向左 食指
j 向下 食指
k 向上 中指
l 向右 无名指
- 行内移动
w word 向后移动一个单词
b back 向前移动一个单词
o - 行首
^ - 行首,第一个不是空白字符的位置
$ - 行尾
3)行数移动
gg go 文件顶部
G go 文件末尾
数字gg go 移动到数字对应行数
数字G go 移动到数字对应行数
:数字 - 移动到数字对应行数
4)屏幕移动
ctrl+b back 向上翻页
ctrl+f forward 向下翻页
H head 屏幕顶部
M middle 屏幕中间
L Low 屏幕底部
1.2 移动
- 段落移动
- vi 中使用 空行 来区分段落
- 在程序开发时,通过一段功能相关的代码会写在一起 --之间没有空行
{ 上一段
} 下一段
- 括号切换
- 在程序中,()、[]、{}使用频率很高,而且都是成对出现
% 括号匹配及切换
3)标记
1. 在开发时,某一块代码可能需要稍后处理,例如:编辑查看
2. 此时先使用m增加一个标记,这样可以在需要时快速的跳转回来 或者 执行其他编辑操作
3. 标记名称 可以是 a~z 或者A~Z之间的任意一个字母
4. 添加了标记的行如果被删除,标记同同时被删除
5. 如果在其他行添加了相同名称的标记,之前添加的标记也会被替换掉
mx(mark) 添加标记x,x是a~z或者A~Z之间的任意一个字母
'x 直接定位到标记x所在位置
1.3 选中文本(可视模式)
- 学习 复制 命令前,应该先学会怎么样选中 要复制的代码
- 在vi中要选择文本,需要先使用visual命令切换到可视模式
- vi中提供了三种可视模式,可以方便程序员选中文本的方式
- 按ESC 可以放弃选中,返回到命令模式
v(可视模式) ----从贯标位置开始按照正常模式选择文本
V(可视行模式)----选中光标经过的完整行
ctrl+v(可是块模式)----垂直方向选中文本
在可视模式下可以使用光标
1.4 撤销和恢复命令
- 恢复错误的编辑动作
u(undo) ----撤销上次,命令
ctrl+r(redo) ----恢复撤销的命令
1.5 删除文本
x(cut) ----删除光标所在字符,或者选中文字
d(移动命令) ----删除移动命令对应的内容
dd(delete)----删除光标所在行,可以ndd复制多行
D(delete) ----删除至行尾
提示:如果使用 可视模式 已经选中了一段文本,那么无论使用d还是x,都可以删除选中文本
- 删除命令可以和移动命令连用,以下是常见的组合命令
dw 从光标位置删除到单词末尾
d0 从光标位置删除到一行的起始位置
d} 从光标位置删除到段落结尾
ndd 从光标位置向下连续删除 n 行
d代码G 从光标所在行 删除到指定代码行 之间的所有代码
d'a 从光标所在行 删除到 标记a 之间的所有代码
1.6复制、粘贴
- vi中提供有一个被复制文本的缓冲区
- 复制命令会将被选中的文字保存在缓冲区
- 删除命令删除的文字会被保存在缓冲区
- 在需要的位置,使用粘贴命令可以将缓冲区的文字插入到光标所在位置
y(移动命令) copy,复制
yy copy,复制一行,可以nyy复制多行
p paste,粘贴
提示
- 命令d、x类似于图形界面的剪切操作-----ctrl+x
- 命令y类似于图形界面的复制操作-----ctrl+c
- 命令p类似于图形界面的粘贴操作-----ctrl+v
- vi中文本缓冲区同样只有一个,如果后续做过 复制、剪切操作,之前缓冲区中的内容会被替换
注意
- vi中文本缓冲区和系统的剪切板不是同一个
- 所以在其他软件中使用ctrl+c复制的内容,不能在vi中通过p命令粘贴
- 可以在编辑模式下使用鼠标右键粘贴
1.7 替换
r(replace)------替换当前字符,命令模式
R(repalce)------替换当前前光标后的字符,替换模式
- R命令可以进入替换模式,替换完成后,按下ESC可以返回到命令模式
- 替换命令 的作用就是不进入编辑模式,对文本进行轻量级的修改
1.8 缩进和重复执行
>> 向右增加缩进
<< 向左减少缩进
. 重复执行上次命令
- 缩进命令 在开发中,统一增加代码的缩进 比较有用!
1. 一次性 在选中代码前增加4个空格,就叫做增加缩进
2. 一次性 在选中代码前删除4个空格,就叫做减少缩进
- 在可视模式下,缩进命令只需要一个> 或 <
在程序中,缩进通常用来代表代码的归属关系
- 前面空格越少,代码的级别越高
- 前面空格越多,代码的级别越低
1.8 查找命令
/str 查找str
- 查找到指定内容之后,使用Next查找下一个出现的位置:
- n: 查找下一个
- N: 查找上一个
- 如果不想看到高亮显示,可以随便查找一个文件中不存在的内容即可
单词快速匹配
· 向后查找当前光标所在的单词
# 向前查找当前光标所在的单词
- 在开发中,通过单词快速匹配,可以快速看到这个单词在其他位置使用过
1.10 查找并替换
- 在vi中查找和替换命令需要在 末行模式下执行
- 记忆命令格式
:%s///g
- 全局替换
- 一次性替换文件中的所有出现的旧文本
:%s/旧文本/新文本/g
- 可视区域替换
- 先选中 要替换文字的范围
: s /旧文本/新文本/g
- 确认替换
- 如果把末尾的g改成gc在替换的时候!,会提示!推荐使用
:%s /旧文本/新文本/gc
- y - yes 替换
- n - no 不替换
- a - all 替换所有
- q - quit 退出替换
- l - last 最后一个,并把光标移动到行首
- ^E - 向下滚屏
- ^Y - 向上滚屏
1.11 插入命令
- 在vi中除了常用的i 竟然编辑模式外,还提供了其他命令
i (insert)在当前字符钱插入文
I (insert)在行首插入文本
a (append)在当前字符后添加文本
A (append)在行末添加文本
o - 在当前行后插入一空行
O - 在当前行前插入一空行