VIM进阶学习笔记(三)进入输入模式
进入输入模式的方法
我们有很多方式从普通模式进入输入模式,下面列举出了其中的一些方法:
i 从光标之前的位置开始输入文本
I 从当前行第一个非空字符之前的位置之前开始输入文本
a 在光标之后的位置追加文本
A 在当前行的末尾追加文本
o 在光标位置下方新起一行并开始输入文本
O 在光标位置的上方新起一行并开始输入文本
s 删除当前光标位置的字符并开始输入文本
S 删除当前行并开始输入文本
gi 从当前缓冲区上次结束输入模式的地方开始输入文本
gI 在当前行的第一列的位置开始输入文本
退出输入模式的方法
下面列出了一些从输入模式退出到普通模式的方法:
<esc> 退出输入模式进入普通模式
Ctrl-[ 退出输入模式进入普通模式
Ctrl-c 与 Ctrl-[ 和 <esc>功能相同, 但是不检查缩写
我发现 esc
键在键盘上太远了,很难够到,所以我在我的机器上将 caps lock
映射成了esc
键。 如果你搜索Bill Joy(Vi的作者)的ADM-3A 键盘, 你会发现esc
键并不是像现在流行的键盘布局一样在键盘的最左上方,而是在q
键的左边,所以我认为将caps lock
映射成esc
键是合理的。
另一个Vim用户中常见的习惯是用以下的配置方法在输入模式中把esc
映射到jj
或者jk
。
inoremap jj <esc>
inoremap jk <esc>
输入模式学到这里,知道怎么进,怎么退出,就够了。。。初学vim 已经够用了。。
再熟练点,知道进入输入模式的几个不同方式:i o a 就够了
下面是输入模式的一些高阶用法。。个人感觉不用掌握,只适合拓展知晓。
在输入模式中删除大块文本
当你输入过程中出现一些输入错误时,一直重复地用backspace
来删除的话会非常地繁琐。更为合理的做法是切换到普通模式并使用d
来删除错误。或者,你能用以下命令在输入模式下就删除一个或者多个字符:
Ctrl-h 删除一个字符
Ctrl-w 删除一个单词
Ctrl-u 删除一整行
此外,这些快捷键也支持在 命令行模式 和 Ex模式 中使用(命令行模式和Ex模式将会在之后的章节中介绍)
执行普通模式下的命令
你知道Vim可以在输入模式下执行普通模式的命令吗?
在输入模式下, 如果你按下Ctrl-o
,你就会进入到insert-normal
(输入-普通)子模式。如果你关注一下左下角的模式指示器,通常你将看到-- INSERT --
,但是按下Ctrl-o
后就会变为-- (insert) --
。 在这一模式下,你可以执行一条普通模式的命令,比如你可以做以下这些事:
设置居中以及跳转
Ctrl-o zz 居中窗口
Ctrl-o H/M/L 跳转到窗口的顶部/中部/底部
Ctrl-o 'a 跳转到标志'a处
重复文本
Ctrl-o 100ihello 输入 "hello" 100 次
执行终端命令
Ctrl-o !! curl https://google.com 运行curl命令
Ctrl-o !! pwd 运行pwd命令
快速删除
Ctrl-o dtz 从当前位置开始删除文本,直到遇到字母"z"
Ctrl-o D 从当前位置开始删除文本,直到行末
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· AI与.NET技术实操系列(六):基于图像分类模型对图像进行分类