转自 vi/vim基本使用命令
一、vi基本概念
可分为三种状态:命令模式(command mode),插入模式(insert mode),底行模式(last line mode)
- 命令模式:控制屏幕光标,字符或行的删除,移动复制某区段及进入其他模式
- 只有在插入模式下,才可以输入模式
- 将文件保存或退出vi,也可以设置编辑环境,如寻找字符串,列出行号
二、vi的基本操作
进入vi,进入后处于命令模式
$ vi filename
切换插入模式编辑文件,按下字母i即可
切换回插入模式,按下esc即可
退出及保存,在命令模式下按冒号:进入底行模式
-
:w filename
将文件以指定名称保存 -
:wq
保存并退出 -
:q!
不保存强制退出
三、命令模式
- 插入模式
-
i
切换插入模式,从光标当前位置输入文字 -
a
切换插入模式,从目前光标所在位置的下一个位置开始输入文字 -
o
切换插入模式,插入新的一行,从行首输入文字
- 移动光标
-
ctrl+b
屏幕往后移动一页 -
ctrl+f
屏幕往前移动一页 -
ctrl+u
屏幕往后移动半页 -
ctrl+d
屏幕往前移动半页 -
0
移到文章的开头 -
G
移到文章的最后 -
$
移到光标所在行的行尾 -
^
移到光标所在行的行首 -
w
光标跳到下个字的开头 -
e
光标挑到下个字的字尾 -
b
光标回到上个字的开头 -
#l
光标移到该行的第#个位置
- 删除文字
-
x
每按一次,删除光标所在位置的后一个字符 -
#x
删除光标所在位置的后x个字符 -
X
每按一次,删除光标所在位置的前一个字符 -
#X
删除光标所在位置的前X个字符 -
dd
删除光标所在行 -
#dd
从光标所在行开始删除#行
- 复制
-
yw
将光标所在之处到字尾复制到缓冲区 -
#yw
复制#个字到缓冲区 -
yy
复制光标所在行到缓冲区 -
#yy
复制从光标所在的该行往下#行文字 -
p
将缓冲区的字符贴到光标所在位置
- 替换
-
r
替换光标所在处的字符 -
R
替换光标所到之处的字符,直到按下esc为止
- 回复上一次操作
-
u
撤回上一个操作
- 更改
-
cw
更改光标所在处的字到字尾 -
c#w
更改#个字
- 跳至指定行
-
ctrl+g
列出光标所在行的行号 -
#G
表示移动光标至文章的第#行行首
四、底行模式
按冒号:进入
列出行号
:set nu
跳到文件的某一行
:#
查找字符
:/关键字
:?关键字
按n可以查询下一个匹配保存文件
:w
离开vi
:q!
:qw