如何使用此vim提示中定义的命令?

时间:2014-02-07 02:56:31

标签: vim

我正在寻找一种方法来使用f后跟一些字符跳转到下一个大写字母。

我遇到this question并希望使用accepted answer,因为它似乎没有任何依赖关系。

然而,在我将行添加到.vimrc之后,我无法弄清楚如何实际跳转到下一个大写字符。

我尝试了Ctrl-RightCtrl-o以及它们的两个排序,但我无法跳转到该行中的下一个大写字母。我还阅读了实际的vim tip,但这也没有解释如何实际使用这些命令。

命令的正确顺序是什么,以及在哪种模式下实际跳转到下一个大写字母?

1 个答案:

答案 0 :(得分:0)

是否必须是 f ind命令?键入/[A-Z]怎么样?它会找到下一个大写字符(即使它在不同的行上),并且输入速度很快。按n将转到下一个,而无需再次重新输入命令。

你在另一个答案中找到的是一个宏命令。 VIM具有丰富的宏语言,允许您定义函数。您可以通过键入冒号然后键入其名称来运行函数。

当然,键入:findNextCapitalCharacter有点长。您可以使用map来定义一个基本宏,它将基本上为您输入字母以查找下一个命令。我喜欢在我的映射宏前面加上%之类的字符,因此输入%c会找到下一个大写字符。


进一步说明

  

我目前正在做/ \ u,但我仍然想知道如何在该答案中使用宏来进行自己的学习。对于那些宏,调用宏命令的实际方法是什么?

你远远超过我!我不知道\u是大写的。

看看答案,我发现他们没有定义宏,而是进行键映射。这是一个快速介绍:

命令模式下(您无法在文件中键入任何内容,但可以使用命令的位置),请键入:map @$ iHello World并按回车键。现在,仍然在命令模式下,键入@$。您会看到VIM为您键入iHello Worldi将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>