[VimGolf] 添加 3 行文字
题目链接
题目说明
添加 3 行文字。
*temp var7 11
和
New text.
开始文件
*temp var1 0
*temp var2 "hi"
*temp var3 -1
*temp var4 42
*temp var5 "asdf"
*temp var6 0
Simple things we do all the time should be able to be done with very few keystrokes, but sometimes I find something I need to do makes me go, "There MUST be a better way."
This challenge is just a simple movement and entering text at a certain place.
结束文件
*temp var1 0
*temp var2 "hi"
*temp var3 -1
*temp var4 42
*temp var5 "asdf"
*temp var6 0
*temp var7 11
Simple things we do all the time should be able to be done with very few keystrokes, but sometimes I find something I need to do makes me go, "There MUST be a better way."
New text.
This challenge is just a simple movement and entering text at a certain place.
最佳分数
22
我的分数
24
6GYp<C-A>$11<C-A>GONew text.<CR><Esc>ZZ
第一次尝试
先随便操作一下,跳到第 6 行,复制粘贴这一行,定位到 6
,修改这一行剩余内容,跳到第 9 行,输入其余内容。
6Gyypf6C7 11<Esc>9Go<CR>New text.<Esc>ZZ
不过这样操作要 29 分,差 7 分,太多了。
第二次尝试
想到可以用 <C-A>
来加数字,这样能减 3 分,26 分,还差 4 分。
6Gyyp<C-A>$11<C-A>9Go<CR>New text.<Esc>ZZ
第三次尝试
9G
是没必要的,可以直接跳到尾行,这样能再减 1 分,25 分,还差 3 分。
6Gyyp<C-A>$11<C-A>GONew text.<CR><Esc>ZZ
第四次尝试
yy
可以替换成 Y
,又能减 1 分,24 分,还差 2 分。
6GYp<C-A>$11<C-A>GONew text.<CR><Esc>ZZ
第五次尝试
感觉上边的一行很难优化了,应该是下边的慢了。虽然文中有一个 text
,是 New text
的一部分,但去复制它也不能变快。退出的过程好像啰嗦了,但也没想到优化方法。还是参考下别人的操作吧。
@fantome84
GONew t<C-N><C-N>.<CR><Esc>5kYp<C-A><Right>11<C-A>ZZ
23 分,好吧,可以补全功能输入 text
,我再试一下。
6GYp<C-A>$11.GONew t<C-N><C-N>.<CR><Esc>ZZ
这样也只能减 1 分,23 分,还差最后 1 分。因为和上边的分数一样,而且方法基本一样,就不分析它了。
第六次尝试
没想到怎么能再减 1 分,再学吧。
@gumnos
#Yp<C-A>l11.GONew t<C-N><C-N>.<CR><Esc>ZZ
重点就是开头的 #
了,用它可以直接定位到第 6 行(因为它会从文档后边往前搜索 temp
),比 6G
省了一步,学习了。
最佳操作
@gumnos
#Yp<C-A>l11.GONew t<C-N><C-N>.<CR><Esc>ZZ
实用操作
)kYp<C-A>l11.GONew text.<CR><Esc>ZZ
24 分。
用 )k
定位就不用管下边的内容里有没有 temp,直接输入 text
就不用依赖原文中的 text,通用性更强。
本作品采用 知识共享署名-相同方式共享 4.0 国际许可协议 进行许可。