vim使用简记

使用了一段时间的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命令的输出结果放到光标当前行