您知道 Vim 可以在插入模式下执行正常模式命令吗?
插入正常模式到底是什么?
示例 1:在插入模式下导航
示例 2:定心屏幕
示例 3:重复字符
示例 4:更快地删除
下一步是什么?
关注@learnvim获取更多 Vim 技巧和窍门!
过去一年半以来,Vim 一直是我的首选编辑器,但我仍在学习新东西。最近我学习了“插入普通”模式,想分享一下如何使用这个模式在 Vim 中更快地编写代码!
非常感谢您的反馈。如果您想到更多使用此模式节省按键次数的方法,欢迎在评论区分享!
插入正常模式到底是什么?
很高兴您问这个问题!
它是插入模式下的一种模式,可以在其中执行普通模式下的命令。无需从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