vim操作,学会这些就可以起飞

vim的基本模式包括三种

1, 普通模式:NORMAL,默认模式,移动光标,复制粘贴等操作
2, 插入模式:INSERT,输入文本
3, 命令模式:内置的命令行接口(extended command),用于保存,退出,查找等操作

基础操作

模式切换

普通模式-->插入模式:
i:insert,光标所在处输入
a:append,光标之后输入
o:新起一行输入
I:光标所在行行首输入
A:光标所在行行尾输入
O:光标所在行之上另起一行
-------------------
插入模式-->普通模式:
ESC
-------------------
普通模式-->命令模式
:

关闭文件

1,普通模式下:
    ZZ  保存,退出
    ZQ  不保存,退出
2,命令模式下:
    :q  退出
    :q! 强制退出
    :wq 保存,退出
    :x  保存,退出
    :w /path/somefile  另存为

光标跳转

k,j,h,l  上,下,左,右移动一个字符
5k  上移动5个字符
3l  右移动5个字符
--------------------
w   下一个单词词首
e   当前或下一个单词词尾
b   当前或上一个单词词首
--------------------
0(数字0)   当前行行首
$   当前行行尾
^   当前行行首非空字符
3w  向右第三个单词词首
--------------------
H   屏幕首行
M   屏幕中间行
L   屏幕尾行
--------------------
5G  跳转到第五行
1G,gg  跳转到第一行
G   跳转到最后一行
--------------------
)   下一句
(   上一句
}   下一段
{   上一段

翻屏

ctrl+f  下翻一屏
ctrl+b  上翻一屏
ctrl+d  下翻半屏
ctrl+u  上翻半屏

编辑

x   删除,等同于delete键的作用
X   删除,等同与backspace键的做用
nx  删除n个字符
~   转换大小写
--------------------
r   单个字符替换
R   连续字符替换
--------------------
d$  删除到行尾
d0  删除到行首
d^  删除到行首非空字符
dw  删除光标到下一个单词之间的部分
d3w 删除光标到第三个单词之间的部分
de  删除光标到单词尾的部分
dd  删除整行
3dd 删除3行

粘贴

p(小写)   向右或下粘贴
P(大写)   向左或上粘贴

复制

yy 复制整行
2yy 复制2行
y$  复制到行尾
y0  复制到行首
y^  复制到行首非空
yw  复制到下一个单词之前(包括本单词后的空格)
ye  复制到本单词结尾(不包括空格)

改变

ce  删除到单词尾,并进入insert模式
c$  删除到行尾,并进入insert模式
c0  删除到行首,并进入insert模式
cc  删除整行,并进入insert模式
3cc 删除3行,并进入insert模式

撤销

u   撤销
U   撤销一行的所有操作
ctrl+r  反撤销

重复

.   重复上次修改,一次修改可以是一个字符,整行或整个文件
ni- 数字+i+需要重复的字符,按esc后编辑器自动输入n次-字符

可视化模式

v(小写)   按字符选定
v(大写)   按行选定
选定后y复制,或d删除

高级操作

多行插入

ctrl+v  进入块可视模式,用方向键或$、^等键选中一个块
1,在前面添加:
I   光标跳到第一行首位,输入需要插入的字符后按esc,编辑器自动把之后的所有行都进行插入,效果等同于多光标操作
2,在后面添加:
A ,光标跳到第一行尾部,输入需要添加的字符后按esc,编辑器会在选中的每一行末添加

查找替换

/ff 向下查询ff,下一个按n,上一个按N
?ff 向上查询ff
:s/old/new/g    在当前行查找全部old替换为new,g为查找全部,i为忽略大小写
:3,8s/old/new/g 从第3行到第8行进行查找替换
:%s/old/new/g   全文查找替换

多窗口

:sp/:vsp    水平或垂直开启一个新窗口,后面如果不接文件名,则表示两个窗口为同一个文件(同步显示)
ctrl+w  再按方向键切换窗口

宏录制

1,NORMAL模式下按qa 开始录制一个名为a的宏
2,开始对文本进行操作
3,按q结束宏录制
4,@a使用宏,3@a使用3次

快速选中

vi"     选中""中的全部内容
va"     选中""中的全部内容,同时也选中""
vi}     选中{}中的全部内容

快速移动

fa   移动到下一个字符a处
ta   移动到字符a的前一个字符处

快速删除

dta   删除到字符a的前一个字符

快速对齐

进入块可视模式选中目标文本
J    把选中的文本变成一行。(J单独使用可删除当前行的换行符)
<    向左缩进
>    向右缩进
=    自动缩进对齐,(这个超好用)

技巧类

zz    重绘屏幕并把当前行显示在窗口正中间
dip   删除所有临近的空白行
:nohl 搜索后用来清除高亮
ci"   改写""中的内容
:g/^\s*$/d    删除文件中所有空白行

你可能感兴趣的:(vim操作,学会这些就可以起飞)