vim 的基本概念
vim大致分可为这么几种状态,分别是命令模式、插入模式、视图模式、和底行模式,各模式的功能区分如下:
- 命令行模式
控制屏幕光标的移动,字符、字或行的删除,移动复制某区段
- 插入模式
按 i 进入插入模式,对文件的内容进行编辑操作,按 ESC 键可回到命令行模式
- 视图模式
按 v 或者 V 进入视图模式,对文字区段进行选择,然后进行相应的操作(比如复制一段文字,删除一段文字等等)
- 底行模式
按 : 或者 / 进入底行模式,其实底行模式也是命令模式的一种等
常使用底行模式对文件文件保存或退出vim,也可以设置编辑环境,如寻找字符串、列出行号……等
基本命令
1) 命令行模式
h 向左移动光标
j 向下移动光标
k 向上移动光标
l 向右移动光标
0 移到文件的开头
G 移动到文件的最后
$ 移动到光标所在行的“行尾”
^ 移动到光标所在行的“行首”
w 光标跳到下个字的开头
e 光标跳到下个字的字尾
b 光标回到上个字的开头
nl 光标移到该行的第n的位置,其中n是数字 如:5l 将光标移动到当前行的第5个字符处
x 每按一次,删除光标所在位置的“后面”一个字符
nx 删除光标所在位置的“后面”n个字符,n是数字,比如 5x
X 删除光标所在位置的“前面”一个字符
nX 删除光标所在位置的“前面”n个字符,n是数字,比如 5X
dd 删除光标所在行
ndd 从光标所在行开始删除n行
yw 将光标所在之处到字尾的字符复制到缓冲区中
nyw 复制n个字到缓冲区
yy 复制光标所在行到缓冲区
nyy 例如,6yy表示拷贝从光标所在的该行“往下数”6行文字
p 将缓冲区内的字符贴到光标所在位置注意:所有与“y”有关的复制命令都必须与“p”配合才能完成复制与粘贴功能
r 替换光标所在处的字符
R 替换光标所到之处的字符,直到按下「ESC」键为止
u 如果您误执行一个命令,可以马上按下「u」,回到上一个操作按多次“u”可以执行多次回复
cw 更改光标所在处的字到字尾处
cnw 例如,c3w表示更改3个字,其中n是数字
nG(或者ngg)例如,15G表示移动光标至文件的第15行的行首,其中n是数字
ctrl+g 列出光标所在行的行号
ci”清除引号内容
ci> 清除尖括号内容
cit 清除标签内的内容
zc 折叠
zC 对所在范围内所有嵌套的折叠点进行折叠
zo 展开折叠
zO 对所在范围内所有嵌套的折叠点展开
[z 到当前打开的折叠的开始处
]z 到当前打开的折叠的末尾处
zj 向下移动,到达下一个折叠的开始处,关闭的折叠也被计入
zk 向上移动到前一折叠的结束处,关闭的折叠也被计入
xp 交换两个字符的位置
ddp 上下两行调换
移动屏幕
ctrl+g 列出光标所在行的行
ctrl+b 屏幕往“后”移动一页
ctrl+f 屏幕往“前”移动一页
ctrl+u 屏幕往“后”移动半页
ctrl+d 屏幕往“前”移动半页
shift +3 选中并查找该词组
跳转位置
ctrl+o 回到更老的跳转位置
ctrl+i 向前跳转位置(两个命令前面可以加数字来表示倍数)
改变大小写
~ 将光标下的字母改变大小写
3~ 将光标位置开始的3个字母改变其大小写
g~~ 改变当前行字母的大小写
U 将可视模式下选择的字母全改成大写字母
u 将可视模式下选择的字母全改成小写
gUU 将当前行的字母改成大写
3gUU 将从光标开始到下面3行字母改成大写
guu 将当前行的字母全改成小写
gUw 将光标下的单词改成大写。
guw 将光标下的单词改成小写。
2) 插入模式
i 在光标的前面插入字符
I 在当前行的第一个字符前插入字符
o 在当前行的下一行插入新的一行,并在新的一行的第一个字符处插入字符
O 在当前行的上一行插入新的一行,并在新的一行的第一个字符处插入字符
a 在光标的后面插入字符
A 在当前行的最后面插入字符
按[Esc]回到命令模式
3) 视图模式
vi” 选择引号内容
vi> 选择尖括号内容
vit 选择标签内的内容
va” 选择包括引号在内的内容
va> 选择包括尖括号在内的内容
vat 选择整个标签
4) 底行模式
:w filename 将文件以指定的文件名filename保存
:wq 存盘并退出vim
:q! 不存盘强制退出vim
:set nu 显示行号
:15 回车,跳到文件第15行
/关键字, 先按「/」键,再输入您想寻找的字符,如果第一次找的关键字不是您想要的,可以一直按「n」会往后寻找到您要的关键字为止
?关键字, 先按「?」键,再输入您想寻找的字符,如果第一次找的关键字ä¡�
:-n,+n d '-'表示当前行的上n行,'+'表示当前行的下n行,比如命令':-2,+2 d'的意思,就是说删除但前行的上2行到当前行的下2行
:n pu 将剪切板中的内容粘贴到n行
:e filename 在当前编辑的窗口中打开指定的“filename”的文件进行编辑操作
:p 文件操作,前一个文件
:n 文件操作,下一个文件
:last 文件操作,最后一个文件
:!cmd 执行shell命令
:sh 进入shell
:exit 退出shell
按[Esc]回到命令模式