Do you know Vim can execute normal mode command while in insert mode? What the heck is insert-normal mode? Example 1: Navigating while remaining in insert mode Example 2: Centering screen Example 3: Repeating characters Example 4: Deleting faster What's next?

2025-06-08

您知道 Vim 可以在插入模式下执行正常模式命令吗?

插入正常模式到底是什么?

示例 1:在插入模式下导航

示例 2:定心屏幕

示例 3:重复字符

示例 4:更快地删除

下一步是什么?

关注@learnvim获取更多 Vim 技巧和窍门!

过去一年半以来,Vim 一直是我的首选编辑器,但我仍在学习新东西。最近我学习了“插入普通”模式,想分享一下如何使用这个模式在 Vim 中更快地编写代码!

打字-300词/分钟

非常感谢您的反馈。如果您想到更多使用此模式节省按键次数的方法,欢迎在评论区分享!

插入正常模式到底是什么?

很高兴您问这个问题!

它是插入模式下的一种模式,可以在其中执行普通模式下的命令。无需从insert-> normal-> (执行普通模式下的操作) ->切换模式insert,您可以在插入模式下执行普通代码命令。

您需要做的就是C-o在插入模式下按下。

如何判断您处于插入-普通模式?在插入模式下,您可以-- INSERT --在左下角看到指示器。如果我们按下C-o,它会变成-- (insert) --

重要提示:此模式下只能执行一条命令。执行完普通模式命令后,将返回插入模式。

即使有这个限制,这仍然是一个强大的功能。让我们举几个例子来说明如何使用 insert-normal 模式。

示例 1:在插入模式下导航

假设你在打字时想在当前行首添加一个单词。按 键可以C-o 0跳转到行首,添加单词,然后按 键跳回到行末C-o $

也许您在同一行的逗号后添加了一些内容,只需这样做C-o T ,,您就会在逗号后直接跳转。C-o $跳回到末尾。

你可以随时将它与其他 Vim 动作混合使用。我发现H, M, L, [], ()它对快速导航很有用。

示例 2:定心屏幕

我正在 vim 中输入这篇文章。输入的时候,我位于屏幕底部。我可以通过执行以下操作将当前位置居中C-o zz

示例 3:重复字符

假设我想输入*100 次。我可以直接输入C-o 100 i * <esc>(缺点是,这会强制你退出插入模式)。

示例 4:更快地删除

如果我想从当前位置删除一段文本到一个锚点,比如一个逗号,我可以这样做C-o d T ,

下一步是什么?

这些是我们可以利用插入正常模式的一些方法。

我很想知道其他开发者如何利用 insert-normal 模式。你们觉得 insert-normal 模式还能用在哪些地方?

鏂囩珷鏉簮锛�https://dev.to/iggredible/vim-do-you-know-that-you-can-execute-normal-mode-command-while-in-insert-mode-1ipb
PREV
在您的 Vue 和 Nuxt 应用程序中最小化、生成 WebP 和延迟加载图像
NEXT
Redux 101 我为什么写这篇文章 没有状态管理的 React 的问题 Redux 解决的问题 关于 Redux 的四个重要概念