文章目录
  1. 1. 基本命令
  2. 2. 高级用法

基本命令

一、vi打开编辑文件
vi

示例:vi test.conf,vi /tmp/test.conf,…

如果指定的filePathAndName存在则会自动载入该文件内容,如果不存在则会自动创建。

注:每行前显示波浪符号的表示该行为空行。

二、vi进入输入模式
vi工作于两种模式:指令模式和输入模式。指令模式是打开文件后的默认模式模式,此时输入任何字符均被视为控制指令。输入模式就是普通的编辑模式,此时输入字符默认为输入内容。

三、vi编辑指令
1、屏幕翻页
Ctrl+u:向上翻半屏
Ctrl+f:向上翻一屏
Ctrl+d:向下翻半屏
Ctrl+b:向下翻一屏
2、移动光标指令
移动光标普遍使用的是方向键,考虑兼容问题,vi定义太多的方向指令,下面只是一小小部分(常用的几个):

space:光标右移一个字符
Backspace:光标左移一个字符
Enter:光标下移一行
nG:光标移至第n行首
n+:光标下移n行
n-:光标上移n行
n$:光标移至第n行尾
0:光标移至当前行首
$:光标移至当前行尾
3、插入删除指令
常用插入、删除指令如下:

i:在当前光标前插入,光标后文本向后移
a:从当前光标后插入,光标后文本后移
I:在光标所在行首插入(第一个非空白字符前)
A:从光标所在行末插入
o:在光标所在行下面新增一行(并进入输入模式)
O:在光标所在行上方新增一行(并进入输入模式)
x:删除光标所在字符,等同于[Delete]功能键
X:删除光标前字符,相当与[Backspace]
dd:删除光标所在的行
r:修改光标所在字符
R:替换当前字符及其后的字符,直到按 [ESC]
s:从当前光标位置处开始,以输入的文本替代指定数目的字符
S:删除指定数目的行,并以所输入文本代替之
do:删至行首
d$:删至行尾
四、vi退出
退出输入模式,先按一下[ESC]键(有时要多按两下),然后执行:

:w ——保存当前文件
:wq —— 存盘退出(与指令 :x 功能相同)
:q —— 直接退出,如已修改会提示是否保存
:q! ——不保存直接退出

高级用法

vim多窗口使用技巧

1、打开多个窗口
打开多个窗口的命令以下几个:
横向切割窗口
:new+窗口名(保存后就是文件名)
:split+窗口名,也可以简写为:sp+窗口名
纵向切割窗口名
:vsplit+窗口名,也可以简写为:vsp+窗口名
2、关闭多窗口
可以用:q!,也可以使用:close,最后一个窗口不能使用close关闭。使用close只是暂时关闭窗口,其内容还在缓存中,只有使用q!、w!或x才能真能退出。
:tabc 关闭当前窗口
:tabo 关闭所有窗口
3、窗口切换
:ctrl+w+j/k,通过j/k可以上下切换,或者:ctrl+w加上下左右键,还可以通过快速双击ctrl+w依次切换窗口。
4、窗口大小调整
纵向调整
:ctrl+w + 纵向扩大(行数增加)
:ctrl+w - 纵向缩小 (行数减少)
:res(ize) num 例如::res 5,显示行数调整为5行
:res(ize)+num 把当前窗口高度增加num行
:res(ize)-num 把当前窗口高度减少num行
横向调整
:vertical res(ize) num 指定当前窗口为num列
:vertical res(ize)+num 把当前窗口增加num列
:vertical res(ize)-num 把当前窗口减少num列
5、给窗口重命名
:f file
6、vi打开多文件
vi a b c
:n 跳至下一个文件,也可以直接指定要跳的文件,如:n c,可以直接跳到c文件
:e# 回到刚才编辑的文件
7、文件浏览
:Ex 开启目录浏览器,可以浏览当前目录下的所有文件,并可以选择
:Sex 水平分割当前窗口,并在一个窗口中开启目录浏览器
:ls 显示当前buffer情况
8、vi与shell切换
:shell 可以在不关闭vi的情况下切换到shell命令行
:exit 从shell回到vi

文章目录
  1. 1. 基本命令
  2. 2. 高级用法