25

用例:我刚刚进入插入模式,并输入了一些文本。现在我想把它变成大写。

可以通过gUmotion. 但是,我在最近的输入会话中输入的文本中找不到动作。这有点奇怪,而且这种动作的概念是错误的(例如,如果你删除了文本,该移动到哪里?),但它可能会解决我的问题。

或者,还有其他方法可以将您最近输入的文本变为大写吗?

4

5 回答 5

33

您正在寻找的运动是:

`[

(反引号,开方括号)。做一个简单的动作,你会使用:

gU`[

但是,您会发现由于动作的工作方式,最后一个字符可能不会被包括在内(我可能是错的)。一个简单的解决方案是:

v`[U

也就是说“进入可视模式,从当前位置选择到最后更改的文本的开头,使其大写”。有关更多信息,请参阅:

:help '[
:help mark-motions

:help mark-motions请注意反引号和单引号之间的区别。

于 2010-03-18T10:40:33.897 回答
8

您还可以将“内在词”运动与 gU 一起使用

键入一个单词后,按<Esc>并键入gUiw。这应该可以工作,而无需切换到可视模式。

于 2012-09-06T20:29:29.183 回答
8

在 vim 中键入小写的单词。

然后按 Esc 键。

然后将光标移动到输入单词的起始字符。

然后按~键。

它将小写替换为大写。

如果输入是大写,它将替换小写。

于 2010-03-18T10:37:40.623 回答
5

我只需在可视模式下选择文本并使用 ~ 更改大小写,U 为大写或 u 为小写所选文本。

编辑:见下面的评论。

于 2010-03-18T10:39:42.983 回答
0

崇高文本复古模式

对于那些在 Sublime Text 中使用复古模式的人。

大写: g U

小写: g u

交换案例: g ~

更多信息在这里。

于 2015-01-06T16:15:03.680 回答