题目链接

Words in parens

题目说明

把单词括起来。

开始文件

one two
three

结束文件

(one) (two)
(three)

最佳分数

14

我的分数

16

:%s/\w*/(&)/g<CR>ZZ

第一次尝试

直接替换。

:%s/\w*/(&)/g<CR>ZZ

16 分,差 2 分。但应该优化不了了。

第二次尝试

没想到其他方法。

@_mhinz_

qqce()<Esc>PWq2@qZZ

15 分。用宏实现的,好像也不是很复杂。ce()<Esc>P 可以在单词两边添加括号,用 cw 也可以,这是一个比较实用的操作。

第三次尝试

又想了想,没想到什么地方可以优化,可能又是完全不同的方法。

@udioica

cw(<C-R><C-O>")<Esc>w.w.ZZ

14 分。又用了一个很少见的用法,如果不加 <C-O>,重复的时候粘贴的就都是第一次复制的 one 了,加了 <C-O>,每次粘贴的就会是 cw 复制的单词,具体帮助见 :h i_Ctrl-R_Ctrl-O

最佳操作

@udioica

cw(<C-R><C-O>")<Esc>w.w.ZZ

实用操作

@_mhinz_

qqce()<Esc>PWq2@qZZ

15 分。只比最佳操作多 1 分,但更灵活,不受替换单词数限制。

:%s/\w*/(&)/g<CR>ZZ

16 分。更通用灵活,也好理解。

文章目录