打开/创建文件
1、打开/创建文件
指令:vi 文件名
若文件不存在,则新建一个文件;若文件存在,则打开这个文件。
2、打开文件时,指定光标的位置
指令:vi 文件名 +行号
注意:"+"和行号直接没有空格,若没有行号,则光标跳到最后一行
3、异常退出后的中间文件
当vi正在编辑文件,此时强制把终端关闭或者其他一些异常行为,这会导致产生一个以.swp为后缀的交换文件,再次打开vi时,会弹出提示信息,按下"d"即可删除交换文件,并进入代码。
VI的三种模式
1、模式及命令
vi有命令行模式、插入模式、底行模式这三种模式,转换方式如下:
命令行到插入模式,常常用i来进行。命令及功能如下:
底行模式下常常用于保存、退出,具体的命令及功能如下:
2、底行模式:w File命令验证
使用w File之后,会将当前的内容拷贝到指定的文件中。
注意:不论当前文件修改内容后,是否输入了:w进行保存,都会将当前的内容进行拷贝,而不是修改前的内容进行拷贝。
VI光标操作
具体操作列表如下,需要注意大小写:
命令 | 功能 |
h | 左 |
j | 下 |
k | 上 |
l(小写的L) | 右 |
w | 向右一个单词 |
b | 向左一个单词 |
0 | 行首 |
^ | 行首,第一个不是空白字符的位置 |
$ | 行尾 |
gg | 文件顶部 |
G | 文件末尾 |
数字gg | 移动到数字对应行数 |
:set nu | 设置显示行号 |
:set nonu | 取消显示行号 |
ctrl + b | 向上翻页 |
ctrl + f | 向下翻页 |
H | 屏幕顶部 |
M | 屏幕中间 |
L | 屏幕底部 |
VI选中、复制、剪切、粘贴、撤销
具体操作列表如下,需要注意大小写:
命令 | 功能 |
v(小写) | 可视模式,从光标位置开始按照正常模式选择文本,esc退出 |
V(大写) | 可视行模式,选中光标经过的完整行,esc退出 |
[n]x | 删除光标所在字符,在可视模式下选择后按下x,可以删除所选段 |
[n]dd | 删除光标所在行,可以ndd删除多行 |
[n]yy | 复制一行,nyy复制多行 |
p | 粘贴 |
y0 | 将光标至行首的字符拷入剪贴板 |
y$ | 将光标至行尾的字符拷入剪贴板 |
d0 | 将光标至行首的字符剪切入剪贴板 |
d$ | 将光标至行尾的字符剪切入剪贴板 |
:1,25y | 拷贝1~25行 |
:1,25d | 剪切1~25行 |
:1,$d | 剪切1~最后1行 |
u | 撤销 |
ctrl+r | 恢复 |
VI查找、替换、分屏
具体操作列表如下,需要注意大小写:
命令 | 功能 |
r | 替换当前字符(单个字符) |
R | 替换当前行光标后的字符(多个字符) |
/str | 查找str |
n | 查找下一个 |
N | 查找上一个 |
:范围s/旧文本/新文本/g | 替换,举例在后面补充 |
:范围s/旧文本/新文本/gc | 有询问的替换,询问值含义在后面补充 |
:sp[文件名] | 横向增加分屏,光标移动在后面补充 |
:vsp[文件名] | 竖向增加分屏,光标移动在后面补充 |
替换举例:
- 10,20s/hello/HELLO/g 第10行到第20行
- .,20s/hello/HELLO/g 当前行到第20行," . "代表当前光标位置
- 5,$s/hello/HELLO/g 第5行到最后一行," $ "代表最后一行
- %s/旧文本/新文本/g 全文替换," % "代表1,$这个范围,即:全文
替换询问值含义:
- y-yes 替换
- n-no 不替换
- a-all 替换所有
- q-quit 退出替换
光标移动快捷键(类似vi的上下左右光标移动):
- ctrl h 光标到左边窗口
- ctrl l 光标到右边窗口
- ctrl j 光标到下面窗口
- ctrl k 光标到上面窗口