一:打开和新建文件

vi 文件名
如果文件已经存在,会直接打开该文件
如果文件不存在了,会直接新建一个文件

1.1:打开文件并且定位行:
案例:在开发过程中,知道某一行存在错误,可以快速定位到错误未知。

vi 文件名 +行数

注意:如果只写加号,则默认定位到最后

1.2:异常处理:

如果使用vi命令编辑未保存,此时突然关闭,则会产生交换文件.xxx.swp,下次再重新编辑时,需要删除。

因此下次再使用vi命令编辑这个文件时,会出现异常,此时输入D,删除交换文件。

vi 编辑python TAB vi 编辑文件_文件名

二:vi的三种工作模式:

vi 编辑python TAB vi 编辑文件_文件名_02


末行模式命令:

w : 保存
q : 退出,没有保存不允许退出
q! : 强行退出
wq : 保存并且退出
x : 保存并且退出

三:移动(基本)

1:上下左右移动

vi 编辑python TAB vi 编辑文件_开发过程_03


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,再想快速回去,用到标记。

vi 编辑python TAB vi 编辑文件_文件名_04


8:替换命令:

区别:一个修改当前字符,一个修改之后的一堆字符

r : replace 替换当前字符  命令模式
R : replace 替换当前光标后的字符  替换模式

R 命令可以进入替换模式,替换完成后,按ESC可以回到命令模式
替换命令的作用就是不用进入编辑模式,对文件进行轻量级的修改。

9 :选中命令:

vi 编辑python TAB vi 编辑文件_文件名_05