[VimGolf] 修改 xrandr 脚本中的显卡标识符
题目链接
题目说明
修改 xrandr 脚本中的显卡标识符。
开始文件
xrandr \
--output VIRTUAL1 --off \
--output DP3 --off \
--output eDP1 --off \
--output DP1 --off \
--output DP2 --off \
--output HDMI3 --off \
--output HDMI2 --off \
--output HDMI1 --off \
--output DP3-1 --off \
--output DP3-3 --off \
--output DP3-2 --off \
--output eDP1 --primary --mode 1920x1080
结束文件
xrandr \
--output VIRTUAL-1 --off \
--output DP-3 --off \
--output eDP-1 --off \
--output DP-1 --off \
--output DP-2 --off \
--output HDMI-3 --off \
--output HDMI-2 --off \
--output HDMI-1 --off \
--output DP-3-1 --off \
--output DP-3-3 --off \
--output DP-3-2 --off \
--output eDP-1 --primary --mode 1920x1080
最佳分数
12
我的分数
14
:%s/.*\u/&-<CR>ZZ
第一次尝试
看起来是在大写字母之后加一个 -
。
:%s/[A-Z]\+/&-<CR>ZZ
17 分,差得有点多啊。
第二次尝试
原来可以用 \u
匹配大写字母,然后再简化一下。
:%s/.*\u/&-<CR>ZZ
降到 14 了,还差 2 分。
第三次尝试
感觉按照这个思路,最多能再降 1 分,又和前两个题目差不多了。我可能有一个很基础的东西不会,然后每个题目都做不出来,还是先参考一下别人的操作吧。
有人是这样操作的,13 分。
@Sakigw
:%norm<C-X><C-A>i-<CR>ZZ
果然用的不是 :s
,这操作我都没见过,分析一下。%norm
是对所有行执行普通模式的命令,<C-X><C-A>
是对行中第一个数字先减一再加一,其实就是定位到这个数字上,i-
就是在这个数字前放一个 -
。没想到可以这么定位数字,长见识了。
在这个基础上还可以减 1 分吗?感觉这个操作不能再简化了,估计 12 分的又是另一种完全不同的方法。再学学别的方法吧。
@edgar_domingues
:%s/\d/-\0<CR>ZZ
这个用 :s
居然也能 13 分。好吧,我就想着匹配大写字母了,没注意匹配数字更容易。不过这个稍微一改不就 12 分了吗?
:%s/\d/-&<CR>ZZ
那看起来这个题目并不难,只是我只想着匹配大写字母,走进死胡同了。
最佳操作
:%s/\d/-&<CR>ZZ
实用操作
:%s/\d/-&<CR>ZZ
12 分。
就是最佳操作。
本作品采用 知识共享署名-相同方式共享 4.0 国际许可协议 进行许可。