模式切换
Vim一共有4个模式:
- 正常模式 (Normal-mode) :正常模式一般用于浏览文件,也包括一些复制、粘贴、删除等操作
- 插入模式 (Insert-mode):在正常模式中按下
i, I, a, A
等键 - 命令模式 (Command-mode):在正常模式中,按下
:(冒号)
键,会进入命令模式 - 可视模式 (Visual-mode):在正常模式按下
v, V, \<Ctrl>+v,
可以进入可视模式。
显示行号
set nu
显示行号
set nonu
不显示行号
删除行文本相关
首先前提是在编辑模式下按esc进入命令模式下操作
x
删除当前光标中的一个字符
dw
当前光标单词的剩余部分(delete word),就是删除光标之后第一个空格之前的内容
db
光标和前一个单词剩余部分,删除光标之前第一个空格之间的内容
ndw
删除当前光标后的n个单词
d$
/ D
删除当前光标之后的这一行的所有内容
dd
直接删除当前行
ndd
直接删除当前行开始的n
c
功能与d功能类似,但是c功能会操作完进入INSERT模式,比如:cw
,c$
,cc
。
d)
删除到下一行的开始,被删除行会消失,不会变成空行
d + 回车
直接删除2行(当前行+下一行)
gg dG
删除所有文本
复制和粘贴
-
将光标移动到要复制的位置,按
V
进入可视化模式。 -
将光标移动到要复制的结束的位置,按下
y
,复制。(此时vim自动选中要复制的内容并复制,然后退出可视化)。 -
将光标移动到要粘贴的地方,按
p
粘贴。
撤销和重做
u
撤销上一步的操作(undo)
ctrl+r
重做撤销的步骤(redo)
查找和替换
全文的搜索
直接在normal模式下按/
进入查找模式,然后输入要查找的字符串
按下回车
, vim会跳转到匹配的第一个,然后按下
n
查找下一个,按下N
查找上一个。
3n
向后查找三个符合的字符串。
?
向上搜索,随后的n命令向上搜索,N向下搜索,其他和/一样
- 取消搜索后的高亮显示方法:
:/,?
,set nohlsearch
,:nohl
大小写敏感查找
在查找模式中加入\c
表示大小写不敏感查找,\C
表示大小写敏感查找
例如,查找大小写敏感的void:
/void \C
查找当前光标的单词
在normal模式下按*
既可以查找光标所在单词,(单词的要求是每次出现的前后为空白字符或标点符号)。
例如,查找foo bar
的foo
,只要将光标放在foo
单词任一字符上,既可以被匹配到。
替换
在命令模式下
s
用来查找和替换字符串,语法如下::{作用范围}s/{目标}/{新替换}/{替换标志}
例如:%s/foo/bar/g
会在全局范围(%
)查找foo
并替换为bar
,所有出现的都会被替换(g
)。
-
范围:主要包括当前行、全文、选区。
-
当前行:
s/foo/bar/g
-
全文:
%s/foo/bar/g
-
选取:在visual模式下(按
v
建进入visual模式)选择区域后输入:
,vim既可以自动补全为:‘<,‘>
。然后在后面继续输入s/foo/bar/即可
? 如:
‘<,‘>s/foo/bar/g
-
固定行:如将45-62行的void改为VOID,
45,62s/void/VOID/g
-
当前行到接下来的n行:如将当前光标到接下来的15行的VOID改为void,
.,+5s/VOID/void/g
-
-
替换标志:上文中的/g表示全局替换(globe),还有一些其他的替换标志。
空替换标志
表示只从光标处开始出现的第一次的替换:%s/foo/bar
i
表示大小写不敏感,%s/foo/bar/i
I
表示大小写敏感,%s/foo/bar/I
c
表示需要确认,例如全局查找foo
替换为bar
时,需要确认,%s/foo/bar/gc
,回车后Vim会将光标移动到每一次"foo"
出现的位置,并提示replace with bar (y/n/a/q/l/^E/^Y)?
按下y
表示替换,n
表示不替换,a
表示替换所有,q
表示退出查找模式,l
表示替换当前位置并退出。
光标移动快捷键
hjkl
左下上右键
注:当 Bill Joy 创建 Vi 文本编辑器时,他使用的机器机器是 ADM-3A 终端机,这机器就是把 HJKL 键作为方向键。自然而然,Bill Joy 也就用了相同的按键了。
直接按:
fa
向后移动到字符a处
Fa
向前移动到字符a处
2w
向后移动两个word
2b
向前移动两个word
gg
移动到文本开头处
G
移动到文本结束处
:123
移动到第123行
待补充...
推荐更多Vim相关内容:
- Linux文本编辑器Vim基础教程 https://www.linuxidc.com/Linux/2017-09/146930.htm
- Linux下使用vim命令编辑与修改文本内容 https://www.linuxidc.com/Linux/2018-03/151584.htm
- vim基本操作笔记 https://www.linuxidc.com/Linux/2018-04/151693.htm
- Vim高级操作快速入门 https://www.linuxidc.com/Linux/2018-09/154039.htm
- 如何在Vim编辑器中密码保护文件 https://www.linuxidc.com/Linux/2018-10/154910.htm
- Linux基础教程之Vim编辑器用法 https://www.linuxidc.com/Linux/2018-09/154400.htm
- Linux 系统中如何进入退出 Vim 编辑器 https://www.linuxidc.com/Linux/2018-04/151813.htm
- Ubuntu 16.04 Vim YouCompleteMe自动补全的安装配置与使用 https://www.linuxidc.com/Linux/2017-02/141088.htm
- 如何在Vim编辑器中密码保护文件 https://www.linuxidc.com/Linux/2018-10/154910.htm
- Vim实现分屏操作 https://www.linuxidc.com/Linux/2019-03/157689.htm
- Vim编辑器翻页控制命令详解 https://www.linuxidc.com/Linux/2019-01/156600.htm
- Linux下更改Vim默认注释颜色 https://www.linuxidc.com/Linux/2019-01/156603.htm