我正在寻找一种方法来使用f
后跟一些字符跳转到下一个大写字母。
我遇到this question并希望使用accepted answer,因为它似乎没有任何依赖关系。
然而,在我将行添加到.vimrc
之后,我无法弄清楚如何实际跳转到下一个大写字符。
我尝试了Ctrl-Right
和Ctrl-o
以及它们的两个排序,但我无法跳转到该行中的下一个大写字母。我还阅读了实际的vim tip,但这也没有解释如何实际使用这些命令。
命令的正确顺序是什么,以及在哪种模式下实际跳转到下一个大写字母?
答案 0 :(得分:0)
是否必须是 f ind命令?键入/[A-Z]
怎么样?它会找到下一个大写字符(即使它在不同的行上),并且输入速度很快。按n
将转到下一个,而无需再次重新输入命令。
你在另一个答案中找到的是一个宏命令。 VIM具有丰富的宏语言,允许您定义函数。您可以通过键入冒号然后键入其名称来运行函数。
当然,键入:findNextCapitalCharacter
有点长。您可以使用map来定义一个基本宏,它将基本上为您输入字母以查找下一个命令。我喜欢在我的映射宏前面加上%
之类的字符,因此输入%c
会找到下一个大写字符。
我目前正在做/ \ u,但我仍然想知道如何在该答案中使用宏来进行自己的学习。对于那些宏,调用宏命令的实际方法是什么?
你远远超过我!我不知道\u
是大写的。
看看答案,我发现他们没有定义宏,而是进行键映射。这是一个快速介绍:
在命令模式下(您无法在文件中键入任何内容,但可以使用命令的位置),请键入:map @$ iHello World
并按回车键。现在,仍然在命令模式下,键入@$
。您会看到VIM为您键入iHello World
。 i
将VIM置于插入模式,因此可以输入Hello World
那是映射!
在VIM中,您有特殊的地图模式,具体取决于您所在的模式。在原始VI中,您有两种模式:命令和插入。在VIM中,您具有Command,Select,Visual和Command-Pending模式。不同的 map 命令取决于模式。在VIM中键入:help mapmode
,然后按<RETURN>
查看各种地图模式及其VIM命令。这将是VIM帮助手册第1.3至1.5节。仔细阅读以了解不同的map命令的含义。
接受的答案正在做的是三次不同地输入地图,每种模式一次。有两个不同的地图(一个搜索到前一个,一个搜索到下一个),所以六个一起。
接受的答案将Cntrl-Left Arrow <C-left>
和Cntrl-Right Arrow <C-Right>
映射到这些映射中的每一个。就像我将@$
映射到 Hello World 。
设置g:camelcase
正在将名为 camelcase 的全局变量设置为字符串。如果字符串是A-Z
,那么它只是大写字母。如果是A-Z0-9
,则为大写字母和数字。您应该只定义此变量的一个实例。
我认为您的问题在于您正在为地图键入<C-Left>
。您要输入的内容是^V^->
,^V
Ctrl-V ,^->
是Ctrl-Left Arrow。当您输入时,map命令会将这些更改为<C-Left>
。