用例:我刚刚进入插入模式,并输入了一些文本。现在我想把它变成大写。
可以通过gUmotion
. 但是,我在最近的输入会话中输入的文本中找不到动作。这有点奇怪,而且这种动作的概念是错误的(例如,如果你删除了文本,该移动到哪里?),但它可能会解决我的问题。
或者,还有其他方法可以将您最近输入的文本变为大写吗?
您正在寻找的运动是:
`[
(反引号,开方括号)。做一个简单的动作,你会使用:
gU`[
但是,您会发现由于动作的工作方式,最后一个字符可能不会被包括在内(我可能是错的)。一个简单的解决方案是:
v`[U
也就是说“进入可视模式,从当前位置选择到最后更改的文本的开头,使其大写”。有关更多信息,请参阅:
:help '[
:help mark-motions
:help mark-motions
请注意反引号和单引号之间的区别。
您还可以将“内在词”运动与 gU 一起使用
键入一个单词后,按<Esc>
并键入gUiw
。这应该可以工作,而无需切换到可视模式。
在 vim 中键入小写的单词。
然后按 Esc 键。
然后将光标移动到输入单词的起始字符。
然后按~键。
它将小写替换为大写。
如果输入是大写,它将替换小写。
我只需在可视模式下选择文本并使用 ~ 更改大小写,U 为大写或 u 为小写所选文本。
编辑:见下面的评论。