一:打开和新建文件
vi 文件名
如果文件已经存在,会直接打开该文件
如果文件不存在了,会直接新建一个文件
1.1:打开文件并且定位行:
案例:在开发过程中,知道某一行存在错误,可以快速定位到错误未知。
vi 文件名 +行数
注意:如果只写加号,则默认定位到最后
1.2:异常处理:
如果使用vi命令编辑未保存,此时突然关闭,则会产生交换文件.xxx.swp
,下次再重新编辑时,需要删除。
因此下次再使用vi命令编辑这个文件时,会出现异常,此时输入D,删除交换文件。
二:vi的三种工作模式:
末行模式命令:
w : 保存
q : 退出,没有保存不允许退出
q! : 强行退出
wq : 保存并且退出
x : 保存并且退出
三:移动(基本)
1:上下左右移动
2:行内移动
w : 向后移动一个单词
b : 向前移动一个单词
0 : 行首
^ : 行首,第一个不是空白的位置
$ : 行尾
3 :行数移动
gg : 文件顶部
G : 文件末尾
数字gg : 移动到数字对应的行数
数字G : 移动到数字对应的行数
: 数字 : 移动到数字对应的行数
4:屏幕移动
Ctrl + b : 向上翻页(back)
ctrl + f : 向下翻页(forward)
H : 屏幕顶部(head)
M : 屏幕中间(Middle)
L : 屏幕底部(Low)
5 :段落移动
在vi中使用空行来区分段落,在程序开发过程中,一段代码没有空行则就是一个段落。
{ : 上一段
} : 下一段
6 :括号切换:
在开发过程中使用成对的() [] {} 的快速切换
% : 括号匹配的快速切换
7 :标记:
开发中的问题:例如在A地方开发,出现问题,需要查看B地方的代码,查看完B,再想快速回去,用到标记。
8:替换命令:
区别:一个修改当前字符,一个修改之后的一堆字符
r : replace 替换当前字符 命令模式
R : replace 替换当前光标后的字符 替换模式
R 命令可以进入替换模式,替换完成后,按ESC可以回到命令模式
替换命令的作用就是不用进入编辑模式,对文件进行轻量级的修改。
9 :选中命令: