普通模式下 u 撤销 ctrl + r 反撤销
一. 块操作:
多行删除字符
- Ctrl+v 进入列选择模式
- 移到光标把注释符选中
- 按下小写的d
多行替换字符
- Ctrl+v进入模式
- 选中字符
- 按小写的r,输入替换后的字符
多行插入字符
行首添加
- ctrl + v
- 按上下选择键选中需要添加的行
- $
- I (大写I)
- 添加需要添加的内容
- ESC
行尾添加
- ctrl + v
- 按上下选择键选中需要添加的行
- $
- A
- 添加需要添加的内容
- ESC
注意:I,A都是大写
二.分屏
创建分屏
- :split → 创建水平分屏 (
:vsplit
创建垂直分屏)
切换屏幕
<C-w><dir>
: dir就是方向,可以是hjkl
或是 ←↓↑→ 中的一个,其用来切换分屏。
关闭屏幕
- Ctrl+W q 关闭当前分屏
调整屏幕尺寸
- Ctrl+W = 所有屏尺寸相等
- Ctrl+W - 减少高度
- Ctrl+W + 增加高度
三.vim在选中的文本中查找替换
查找
在normal模式下按下 / 即可进入查找模式,输入要查找的字符串并按下回车。 Vim会跳转到第一个匹配。按下n
查找下一个,按下N
查找上一个。
在查找模式中加入\c
表示大小写不敏感查找,\C
表示大小写敏感查找。例如:
/test\c
对于在vim中前面已经输入过的字符串,只要再次输入前几个字符,然后按Ctrl+n 即可自动补全。
替换
:s
(substitute)命令用来查找和替换字符串。语法如下:
:{作用范围}s/{目标}/{替换}/{替换标志}
例如 :%s/foo/bar/g
会在全局范围(%
)查找 foo
并替换为 bar
,所有出现都会被替换(g
)。
作用范围
作用范围分为当前行、全文、选区等等。
当前行:
:s/foo/bar/g
全文:
:%s/foo/bar/g
选区,在 Visual 模式下选择区域后输入 :
,Vim 即可自动补全为 :'<,'>
。
:'<,'>s/foo/bar/g
2-11 行:
:5,12s/foo/bar/g
当前行 .
与接下来两行 +2
:
:.,+2s/foo/bar/g
替换标志符
上文中命令结尾的 g
即是替换标志之一,表示全局 global
替换(即替换目标的所有出现)。 还有很多其他有用的替换标志:
空替换标志表示只替换从光标位置开始,目标的第一次出现:
:%s/foo/bar
i
表示大小写不敏感查找,I
表示大小写敏感:
:%s/foo/bar/i
# 等效于模式中的\c(不敏感)或\C(敏感)
:%s/foo\c/bar
c
表示需要确认,例如全局查找 "foo"
替换为 "bar"
并且需要确认:
:%s/foo/bar/gc
回车后 Vim 会将光标移动到每一次 "foo"
出现的位置,并提示
replace with bar (y/n/a/q/l/^E/^Y)?
按下 y
表示替换,n
表示不替换,a
表示替换所有,q
表示退出查找模式, l
表示替换当前位置并退出。^E
与 ^Y
是光标移动快捷键,参考: Vim 中如何快速进行光标移动。
四.复制与删除
记住下面这种命令格式,任意组合:
<start position><command><end position>
全选(高亮显示):按esc后,然后ggvG或者ggVG
全部复制:按esc后,然后ggyG
复制多行:
:9,15 copy 16 或 :9,15 co 16
由此可有:
:9,15 move 16 或 :9,15 m 16 将第9行到第15行的文本内容到第16行的后面
全部删除:按esc后,然后ggdG(高亮) 或者 dG(非高亮)
解析:
gg:是让光标移到首行,在vim才有效,vi中无效
v : 是进入Visual(可视)模式
G :光标移到最后一行
选中内容以后就可以其他的操作了,比如:
d 删除选中内容
y 复制选中内容到0号寄存器
"+y 复制选中内容到+寄存器,也就是系统的剪贴板,供其他程序用
x 是直接删除光标所在的字符
D 删除光标位置到本行结尾
https://blog.csdn.net/guangyacyb/article/details/109607772
Windows中复制粘贴配置:
-- 在_vimrc添加配置
-- 复制:鼠标选中某段文本进入可视块,然后ctrl+c
-- 粘贴:gvim 内进入插入模式后ctrl+v,外部直接ctrl+v;
-- 剪切:ctrl+x
vmap <C-c> "+y
vmap <C-x> "+c
vmap <C-v> c<ESC>"+p
imap <C-v> <C-r><C-o>+
删除重复行:
1. sort
2. g/^\(.*\)$\n\1$/d
转载:vim全选,全部复制,全部删除 - 星草感觉 - 博客园
五.缩进
向前或向后缩进4个空格
- 按
shift + v
组合键进入Visual Line
模式,可使用方向键选择多行; - 按
<
或>
,进行向前或向后缩进。注:有些设置为缩进一个Tab单位。
向前或向后缩进n个空格
向前缩进,实则是使用Visual Block
模式删除多余空格以达到向前缩进的效果。
- 按
ctrl + v
组合键进入Visual Block
模式; - 使用上下方向键可选择多行,使用前后方向键可选择空格大小长度;
- 按下
d
删除选中内容。
向后缩进,实则是使用Visual Block
模式批量添加空格以达到向后缩进的效果。
- 按
ctrl + v
组合键进入Visual Block
模式; - 按
shift + i
组合键进入编辑模式; - 输入需要缩进的空格数量;
- 按
esc
按键完成操作。