vi/vim 共分为三种模式,分别是命令模式(Command mode),输入模式(Insert mode)和底线命令模式(Last line mode)。 这三种模式的作用分别是:
命令模式:
用户刚刚启动 vi/vim,便进入了命令模式。
此状态下敲击键盘动作会被Vim识别为命令,而非输入字符。比如我们此时按下i,并不会输入一个字符,i被当作了一个命令。
以下是常用的几个命令:
- i 切换到输入模式,以输入字符。
- x 删除当前光标所在处的字符。
- : 切换到底线命令模式,以在最底一行输入命令。
若想要编辑文本:启动Vim,进入了命令模式,按下i,切换到输入模式。
命令模式只有一些最基本的命令,因此仍要依靠底线命令模式输入更多命令。
输入模式
在命令模式下按下i就进入了输入模式。
在输入模式中,可以使用以下按键:
- 字符按键以及Shift组合,输入字符
- ENTER,回车键,换行
- BACK SPACE,退格键,删除光标前一个字符
- DEL,删除键,删除光标后一个字符
- 方向键,在文本中移动光标
- HOME/END,移动光标到行首/行尾
- Page Up/Page Down,上/下翻页
- Insert,切换光标为输入/替换模式,光标将变成竖线/下划线
- ESC,退出输入模式,切换到命令模式
底线命令模式
在命令模式下按下:(英文冒号)就进入了底线命令模式。
底线命令模式可以输入单个或多个字符的命令,可用的命令非常多。
在底线命令模式中,基本的命令有(已经省略了冒号):
- q 退出程序
- w 保存文件
按ESC键可随时退出底线命令模式。
vim:
vim testxfile
vim +# :第#行
vim + :最后
vim +/what :第一次匹配到的行的行首
#关闭:
q #末行模式(esc)
ZZ #直接
mode:
–编辑模式:按键具有编辑文本功能:默认打开进入编辑模式
–输入模式:按键本身意义
–末行模式:接受用户命令输入
1.转化:
末行 <--> 编辑 <--> 输入
#编辑-->输入:
i: 字符前面
a: 字符后面
o:光标行下,新建一行
O:光标行上,新建一行
I:光标行首
A:光标行尾
#输入-->编辑:
ESC
编辑-->末行:
:
末行-->编辑:
ESC, ESC
2.编辑:
#字符
h: 左;j: 下;k: 上;l: 右
#单词
w: 下词首
e: 当前或下词尾
b: 当前或前词首
#行内
0: 绝对行首
^: 行首的第一个非空白字符
$: 绝对行尾
#行间
G:文章末尾
3G:第3行
gg:文章开头
翻屏
ctrl:f,b
3.操作
#删除&替换单个字符
x:删除光标位置字符
3x:删除光标开始3个字符
r:替换光标位置字符
#删除命令 : d
dw,2dd, d+光标组合啥的
#复制粘贴&剪切(d 内存缓冲区)
yw,yy
p P
#撤销&重做
u 撤销
ctrl+r 重做 撤销的操作
. 重复上一步的操作
4.末行
#set:设置
set nu #number
set nonu #nonumber
set readonly
#/:查找
/word #查找到行首
#如果直接在编辑下/,直接开启末行,并且找到该词前
n,N #下上
#!:执行命令
!ls -l /
#1,$d :命令组合 #删除1到最后行
#s: 查找并替换
1,4s/a/b/gi
s/str1/str2/gi:
范围:
n:行号
.:当前光标行
+n:偏移n行
$:末尾行,$-3 !(在编辑中是一行内,这里是全文)
%:全文
分割:
临近s命令的第一个字符为边界字符:/,@,#
附加:
g:一行内全部替换 (默认是一行出现第一个)
i:忽略大小写