欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Vim

程序员文章站 2024-02-21 11:37:22
...

Vim使用

所有的命令都需要在Normal模式下使用
Level 0
1.从Normal和Insert模式切换

i->进入Insert模式
ESC->返回Normal模式

2.移动光标

hjkl->左下上右移动光标
方向键->与hjkl作用相同

3.删除

x->删除当前光标所在位置
dd->删除当前行,并将删除的行存到剪贴板

4.拷贝和粘贴

yy->拷贝当前行
p->粘贴,p表示在当前位置之后,P则是在当前位置之前

5.打开/保存/退出/改变文件

:e <path/to/file>->打开一个文件
:w->存盘
:saveas <path/to/file>->
:x/wq或ZZ->存盘并退出,ZZ不需要输入冒号
:q!->退出不保存
:qa!->强行退出所有的正在编辑的文件
:bn/bp/n->同时打开多个文件时,使用bn、bp这个两个命令进行切换,n是到下一个文件

6.帮助

:help <commmand>->显示相关命令的帮助
:q->退出帮助

Level 1
1.各种插入模式

a->在光标后插入
o->在当前行后插入新行
O->在当前行前插入新行
cw->替换从光标所在位置后到一个单词结尾的字符

2.移动光标

0->到行头
$->到行尾
^->到本行第一个不是blank字符的位置
g_->到本行最后一个不是blank字符的位置
/pattern->搜索与pattern匹配的字符串,若有多个匹配,按n到下一个

3.撤销和重做

u->撤销还原
ctrl+r->重做

Level 2
1.重复

.->可以重复上一次的命令
N<command>->重复某个命令N次

2.高效率移动光标

NG/:N->移动到第N行
gg->移动到第一行,等同于1G,或:1
G->移动到最后一行
w/e->按照单词移动,w到下一个单词的开头,e到下一个单词的结尾,W/E用于按照字符分隔符移动
%->匹配括号移动,需要先把光标移动到括号上,包括(,{,[
*/#->匹配光标当前所在单词,*是移动到下一个,#是移动到上一个

3.与移动光标配合联动的命令

<start position><command><end position>
例如
0y$->先到行头,开始拷贝,到本行最后一个字符
y2/foo->拷贝2个“foo”之间的字符串
v->可视化的选择
gU->变大写
gu->变小写

Level 3
1.在当前行上移动光标

0,^,$,g_
fa->到下一个为a的字符处
3fa->在当前行查找第三个出现的a
t,->到逗号前的第一个字符
F/T->f、t作用相同,方向相反
dt"->删除所有内容,直到遇到双引号

2.块操作

ctrl+v->进入可视化块操作
例如
^<ctrl+v><ctrl+d>I--<ESC>->在多行前插入--<ctrl+d>向下移动也可使用其他方式移动光标,--可替换为//即注释多行

3.自动提示

ctrl+p/n->自动补齐功能

4.宏录制

qa->把操作记录在寄存器a中
q->停止录制
@a->施放一次寄存器a中录制的宏
@@->施放最新录制的宏
例如
在一个只有一行且只有“1”的文本中,键入qaYp<ctrl+a>q,Yp复制粘贴行
<ctrl+a>->增加1
此时文本会出现两行分别是“1”和“2”,结束宏录制
@a->2下面写3
@@->3下面写4
100@@->重复执行100次后,数据增加到104

5.可视化选择

v,V,ctrl+v进入可视化选择,之后可以配合其他命令
J->把所选的行并为一行
<,>,=->左右缩进,=则是自动给缩进
$A,输入字符串,[ESC]->在所有被选择的行后添加

6.分屏

分屏启动Vim
vim -On file1 file2->垂直分屏//n表示分成几个屏
vim -on file1 file2->水平分屏//n表示分成几个屏
ctrl+w c/q->关闭当前窗口,若只剩下一个则退出Vim
ctrl+w s/v->上下/左右分隔当前打开的文件
:sp/vsp filename->上下/左右分隔,并且打开一个新的文件
ctrl+w l/k/j/h->移动光标,若为大写L/K/J/H,则会移动分屏
ctrl+w w->把光标移动到下一个屏中
ctrl+w -/+/=->改变屏的尺寸
相关标签: Vim vim linux