欢迎光临
我们一直在努力

全网超详细的Vim常用快捷键(建议收藏)

各位小伙伴,学习了几天的C语言基础,是不是都在苦恼vim上编写代码太麻烦了,和我们之前的Windows操作大不一样,没有了ctrl + c / ctrl + v的一键复制粘贴,只能手敲一些重复代码,或者鼠标选择点击复制,在点击粘贴,大家都用不习惯,难道vim就没有这些快捷键了吗?答案当然是否定的,今天我就将为大家分享一些常用的快捷键,让大家编写代码更轻松,便捷。

首先,得清楚Vim的三种核心工作模式:

1.正常模式(Normal):

进入方式:Vim启动默认进入、插入模式以及可视化模式按Esc退出

核心用途:移动光标、复制粘贴、删除修改等

2.插入模式(Insert):

进入方式:正常模式下,按 i / I / a / A / o / O等

核心用途:直接编辑、输入文本(类似普通记事本)

3.可视化模式(Visual):

进入方式:正常模式下, 按v(字符可视)、V(行可视)、ctrl + v(块可视)

核心用途:选中一段文本,进行批量复制、删除、修改等操作

1.模式切换

1.1 N —- I

快捷键功能
i 在当前光标前  进入插入模式
I

在当前光标行首 进入行首(行首:非空白字符前)

a 在当前光标后 进入插入模式
A 在当前光标行尾 进入插入模式
o 在当前行下方 新建一行,进入插入模式
O

在当前行上方 新建一行,进入插入模式

1.2 N —-  V

快捷键功能v进入字符可视化模式(按字符选中文本)
V 进入行可视化模式(按行选中文本)
ctrl  +  v 进入块可视化模式(按矩形块选择文本)

1.3 退出

Esc : 退出 插入 / 可视化模式,返回正常模式

2 光标移动

2.1单个字符/行

快捷键功能
h 光标向左移动(对应←键)
j 光标向下移动(对应↓键)
k 光标向上移动(对应↑键)
l 光标向右移动(对应→键)
0

光标跳转到当前行首(包括空白字符)

^ 光标跳转到当前行首非空白字符
$ 光标跳转到当前行尾
gg 光标跳转到文件开头
G 光标跳转到文件末尾
nG / :n 光标跳转到第n行

2.2 单词/段落

快捷键功能
w 光标跳转到下一个单词开头(以空白字符分隔单词)
b 光标跳转到上一个单词开头
e 光标跳转到当前 / 下一个的结尾
ctrl + f 向下翻一页
ctrl + b 向上翻一页
} 光标跳转到下一个段落的开头
{ 光标跳转到上一个段落的开头

3.文本编辑

3.1 删除(不保留到剪切板)

快捷键功能
x 删除当前光标所在字符
nx 删除从当前光标开始的n个字符
dd 删除当前行
ndd 删除从当前行开始的n行
d$ 删除从当前光标到行尾的所有字符
d^ 删除从当前光标到行首非空白字符的所有字符(不包括自身)
dw 删除从当前光标到下一个单词开头
D 等价于d$
ggdG 删除整个文档的所有内容(gg 到开头,dG 删除到末尾)

3.2 复制(保留到剪切板)

快捷键功能
yy 复制当前行
nyy 复制从当前行开始的n行
y$ 复制从当前光标到行尾的所有字符
y^ 复制从当前光标到行首非空白字符的所有字符(不包括自身)
yw 复制从当前光标到下一个单词开头
Y 等价于yy
ggyG 复制整个文档的所有内容(gg 到开头,yG 复制到末尾)

3.3 粘贴

快捷键功能
p 将剪贴板内容「粘贴到当前光标下方(行操作)」/「粘贴到当前光标后方(字符操作)」
P 将剪贴板内容「粘贴到当前光标上方(行操作)」/「粘贴到当前光标前方(字符操作)」
np 将剪贴板内容「粘贴 n 次」

3.4 替换/修改

快捷键功能
r 替换「当前光标所在的单个字符」(无需进入插入模式,如ra将当前字符改为a)
R 进入「替换模式」,持续替换光标后的字符,按Esc退出(区别于插入模式)
cc 删除「当前整行」并进入插入模式
nc 等价于ndd+i,删除 n 行并进入插入模式
cw 删除「当前单词」并进入插入模式
~ 切换当前光标所在字符的大小写
u 撤销上一步操作(对应ctrl + z)
ctrl + r 恢复上一步的撤销操作(对应ctrl + y)

4. 查找与替换

4.1 查找

快捷键功能
/pattern

(向下查找)字符串pattern,回车确认

?pattern (向上查找)字符串pattern,回车确认
n 跳转到下一个匹配项(与查找方向一致)
N 跳转到下一个匹配项(与查找方向一致)
:noh 取消高亮显示

4.2 替换

快捷键功能
:s/old/new 替换「当前行的第一个 old」为 new
:s/old/new/g 替换「当前行的所有 old」为 new(g=global,全局匹配)
:%s/old/new 替换「整个文档的每一行第一个 old」为 new
:%s/old/new/g 替换「整个文档的所有 old」为 new
:n,m s/old/new/g 替换「第 n 行到第 m 行的所有 old」为 new(如:10,20 s/hello/world/g)

5.底行命令(按 : 进入)

快捷键功能
:w 保存当前文件(「write」,不退出 Vim)
:w filename 将当前文件「另存为」filename(如:w new_file.c)
:q 退出 Vim(「quit」,仅当文件未修改或已保存时生效)
:q! 强制退出 Vim,「放弃所有未保存的修改」(紧急退出,慎用)
:wq / 😡 保存文件并退出 Vim
:set nu 显示「行号」(临时生效,仅当前 Vim 会话)
:set nonu 隐藏「行号」
:set ai 开启自动缩进(与上一行缩进保持一致)
:set ts=4 设置制表符(Tab)宽度为4个空格

6.可视模式下的操作

进入可视模式后,先移动光标选中文本,在执行后续操作:

快捷键功能
v + 光标移动 按字符选中文本
V+ 光标移动 执行选中文本(批量选行)
ctrl + v + 光标移动 按矩形块选中文本
y 复制选中的文本到剪切板 
d 删除选中的文本
c 删除选中的文本并进入插入模式
> 将选中的文本向右缩进
< 将选中的文本向左缩进
I(块可视化模式) 给「选中的列块」行首添加内容(如批量添加//注释)
A(块可视化模式) 给「选中的列块」行尾添加内容

给大家讲一下 批量添加注释的操作,不是很清晰:

  • 正常模式下,移动到要注释的第一行开头;
  • 按Ctrl+v进入块可视模式;
  • 按j向下移动,选中所有需要注释的行的首列;
  • 按I(大写)进入插入模式,输入//;
  • 按Esc,完成所有选中行的批量注释。

7.插入模式下的操作

快捷键功能
ctrl + h 删除光标前的一个字符(对应backspace)
ctrl + d 删除当前光标前的一个制表符
ctrl + c 等价于Esc,退出插入模式,返回正常模式
ctrl + v 插入特殊字符如Ctrl+v+Tab插入真实 Tab 符,避免被替换为空格)

好了,到这里Vim的基本快捷键也为大家分享得差不多了,内容很多,但满满都是干货,这也不是一下就能记住的,是在一次次的实操中逐渐掌握的,我相信,只要掌握得越多,会大幅度提升我们的编写效率。最后就是,制作不易,麻烦看到这里的小伙伴,能点点赞,收藏收藏,支持一下博主,点点关注,和博主继续嵌入式的征程。

赞(0)
未经允许不得转载:171主机测评 » 全网超详细的Vim常用快捷键(建议收藏)
分享到: 更多 (0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址