题目链接

xrandr outputs and dashes

题目说明

修改 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 分。

就是最佳操作。

文章目录