[VimGolf] 为文字添加边框
题目链接
题目说明
改一个单词,并给文字添加一个边框。
开始文件
My dream is to be in a box
结束文件
###############################
# My dream was to be in a box #
###############################
最佳分数
21
我的分数
24
i# <Esc>fiswa<Esc>A #<Esc>YPVr#YGpZZ
第一次尝试
本来以为只需要添加一个边框,提示不匹配才发现还要改一个单词……
i# <Esc>fiswa<Esc>A #<Esc>Yp:s/./#/g<CR>YggPZZ
31 分,整整差了 10 分,也差太多了。
第二次尝试
替换 # 不需要用命令,可以选上用 r
直接换,26 分,还差 5 分。
i# <Esc>fiswa<Esc>$a #<Esc>YpVr#YggPZZ
第三次尝试
可以先处理第 1 行,然后粘贴到第 3 行,24 分,还差 3 分。
i# <Esc>fiswa<Esc>A #<Esc>YPVr#YGpZZ
第四次尝试
想不出更好的方法了。
@braxler
2wswa<Esc>A #<C-O>I# <Esc>YPVGr#pZZ
23 分,关键在于先把中间一行剪切,处理完了再粘贴回来。按照这个方法,我改造下。
i# <Esc>fiswa<Esc>A #<Esc>YPVGr#pZZ
也是 23 分,还有其他的优化点。
第五次尝试
还是想不出来。
@hn9u
fiswa<kEnd> #<Esc>I# <Esc>YPVGr#pZZ
22 分。原来用了一个 <End>
键,用 vim 都忘了这个键了,用它确实可以省一步。再改造下。
i# <Esc>fiswa<End> #<Esc>YPVGr#pZZ
也是 22 分,还差最后 1 分。
第六次尝试
那我就知道了,还可以用 <Home>
省 1 步,21 分。
fiswa<Home># <End> #<Esc>YPVGr#pZZ
最佳操作
fiswa<Home># <End> #<Esc>YPVGr#pZZ
实用操作
i# <Esc>fiswa<Esc>A #<Esc>YPVGr#pZZ
23 分。
最佳操作里的 <Home>
和 <End>
明显不好按,换回常规的操作,而且可以从前往后依次处理,多 2 分当然是值得的。
本作品采用 知识共享署名-相同方式共享 4.0 国际许可协议 进行许可。