如何遵循vim高尔夫解决方案

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何遵循vim高尔夫解决方案相关的知识,希望对你有一定的参考价值。

为了提高我的vim技能,我看了一下这个vim高尔夫挑战赛

http://vimgolf.com/challenges/50048db8cdc4060002000004#

条目#346是这样的

:%s/.*/"",<CR>f,C ]<Esc>ggI[ <Esc>8JZZ

我进入了命令模式并输入了这个

%s/.*/"",<CR>f,C ]<Esc>ggI[ <Esc>8JZZ

并按Enter键

我不认为我做得对,因为我的结束文件没有任何方式类似于所需的输出

我的开始文件看起来像这样

There
is
no
vertical
limit
for
vim
Ninjas

预期的结束文件

[ "There", "is", "no", "vertical", "limit", "for", "vim", "Ninjas" ]

我的结束文件

  1 "There",<CR>f,C ]<Esc>ggI[ <Esc>8JZZ
  2 "is",<CR>f,C ]<Esc>ggI[ <Esc>8JZZ
  3 "no",<CR>f,C ]<Esc>ggI[ <Esc>8JZZ
  4 "vertical",<CR>f,C ]<Esc>ggI[ <Esc>8JZZ
  5 "limit",<CR>f,C ]<Esc>ggI[ <Esc>8JZZ
  6 "for",<CR>f,C ]<Esc>ggI[ <Esc>8JZZ
  7 "vim",<CR>f,C ]<Esc>ggI[ <Esc>8JZZ
  8 "Ninjas",<CR>f,C ]<Esc>ggI[ <Esc>8JZZ
  9 "",<CR>f,C ]<Esc>ggI[ <Esc>8JZZ  
答案

%s/.*/"",<CR>f,C ]<Esc>ggI[ <Esc>8JZZ

你必须按Enter键和Esc键,你看到<CR><Esc>

让我们打破它:

  1. %s/.*/"",将匹配将每个单词放在" "内的所有内容,并且在每行之后它将插入,
  2. f,C ]说找到(f)第一个,(现在光标在,上)并删除它,之后进入插入模式并放入]C ]的捷径是r],它将用]替换当前的char,你不必在那之后按<Esc>
  3. ggI[转到文件开头并进入插入模式并放入[
  4. 8J - 接下来的8行使它成为一条线。
  5. qazxsw poi与qazxsw poi相当
另一答案

您不必输入像ZZ这样的特殊字符(作为4个不同的键),而是按Enter键。这种表示法在Vim用语中很常见,因为它也用于映射。有关详细信息和完整列表,请参阅:wq

此外,当你看到像<CR>这样的东西时,这是一个控制序列,在这种情况下是Ctrl + [,相当于Esc。您可以通过Ctrl + V输入,然后按Ctrl + [(或其他任何内容)。

另一答案

你必须按键,所以

:help key-notation

^[

就像在,当你阅读:%s/.*/"",<CR>f,C ]<Esc>ggI[ <Esc>8JZZ ,这意味着“现在按下回车键”和:%s/.*/"",Enterf,C ]EscggI[ Esc8JZZ相同。

以上是关于如何遵循vim高尔夫解决方案的主要内容,如果未能解决你的问题,请参考以下文章

从零开始配置vim(27)——代码片段

从零开始配置vim(27)——代码片段

latex在vim中的代码片段

VIM 代码片段插件 ultisnips 使用教程

vim代码片段插件ultisnips的使用

如何使用sublime代码片段快速输入PHP头部版本声明