vim使用简记
使用了一段时间的vim,还是一种初级阶段,只能日常使用做一些编辑,使用的很僵硬,写一些简记,做些记录,优雅使用vim 再码一遍重新学习加强一下 ????
vim模式
首先是三种模式:
- 命令模式
- 文本输入模式(就相当于记事本啦)
- 末行模式
三种模式的转换(很懒的随便画一下,凑合看一哈哈哈):
设置显示模式 :set showmode
关闭显示模式 :set noshowmode
显示行号 :set nu
隐藏行号 :set nonu
vim光标移动
光标移动命令:
光标上下左右移动命令:
k (中指) / [Ctrl] + p 上
h(食指) / [Backspace]左 l (无名指) / [space] 右
j (食指) / [Ctrl] + n 下
对于一个字:
w/W 光标向右移动一个字到字首
b/B 光标向左移动一个字到字首
e/E 光标向右移动一个字到字尾
g+e/E 光标向左移动一个字到字尾
对于一行:
0 光标移动到一行行首
$ 光标移动到一行行尾
对于单句的移动:
) 光标移动至句尾
( 光标移动至句首
对于单个段落:
{ 光标移动至段落头
} 光标移动至段落尾
对于一屏幕:
H 光标移动到屏幕顶行
M 光标移动到屏幕中间行
L 光标移动屏幕3/4行(网上都说是最后一行,当时我自己按是3/4行(=@__@=))
对于整个文件
gg 光标移动到文件头
G 光标移动到文件尾
以上命令大多数支持 数字+命令,例如:
nj 向上移动n行
ne 向右移动n个字到字尾
...
...
以上命令凡是可以处理一个就可以处理多个
vim插入命令
普通插入:
a 光标后插入
i 光标前插入
o 当前行后开新一行插入
A 当前行尾插入
I 当前行首插入
O 当前行前开新一行插入
替换插入(建议通过尝试理解会更好理解):
r+替换字符 替换光标的字符
R+替换字符串 替换光标后的字符知道按ESC
s 删除光标字符,并进入文本输入模式
S 删除光标所在行,并进入文本输入模式
cw 删除当前光标之后所在的一个字,并进入文本输入模式
C 删除当前光标之后所在的一个句子,并进入文本输入模式
以上命令凡是可以处理一个就可以处理多个
vim剪切/复制命令
剪切命令:(更喜欢用剪切来说明这个命令,毕竟可粘贴的呀)
x/X 剪切光标后/前一个字符
dd 剪切光标当前行
d^ 从光标剪切至行首
d$ 从光标剪切至行尾
dw 从光标剪切至字尾
dl 和x一样
复制命令:
yy 复制光标当前行
y^ 从光标复制至行首
y$ 从光标复制至行尾
yw 从光标复制至字尾
yl 和x一样,但是是复制
粘贴命令
p 粘贴
以上命令凡是可以处理一个就可以处理多个
搜索/替换命令
搜索命令:
在末行模式中使用搜索命令
/ + 搜索内容 从光标向文件尾搜索
? + 搜索内容 从光标向文件头搜索
n 同向重复上一次搜索命令
N 反向重复上一次搜索命令
替换命令:
:s/p1/p2/g 直接将光标当前行中所有p1用p2替代,将g换成c每次替换会询问
:n1,n2s/p1/p2/g 直接将光标n1到n2行中所有p1用p2替代,将g换成c每次替换会询问
:g/p1/s//p2/g 直接将文件中所有p1用p2替代,将g换成c每次替换会询问
vim末行模式
末行命令:
:x 保存文件并退出
:w 保存文件
:q 退出文件
:q! 退出文件不保存
:!command 执行shell命令command
:n1,n2 w!command 将文件中n1到n2行的内容作为command执行
:r!command 将command命令的输出结果放到光标当前行