![在 Vim 中向 YAML 最左列添加注释字符](https://linux22.com/image/1585484/%E5%9C%A8%20Vim%20%E4%B8%AD%E5%90%91%20YAML%20%E6%9C%80%E5%B7%A6%E5%88%97%E6%B7%BB%E5%8A%A0%E6%B3%A8%E9%87%8A%E5%AD%97%E7%AC%A6.png)
使用 Vim 编辑以下 yaml 时:
countries:
- country:
name: France
我可以用 (Case 1) 注释掉第 2 行:2s/^/#
Enter。结果符合预期:
countries:
# - country:
name: France
然而,当我尝试对(情况 2)执行相同操作时2G^hhi#
ESC,结果会有所不同:
countries:
#- country:
name: France
现在,前面有额外的 8 个空格#
。
什么原因导致了这种行为,以及如何实现与案例 1 相同的行为,同时使用与案例 2 更相似的击键?
答案1
^
在普通模式下 vim 表示“行中第一个非空白列”
0
在正常模式下 vim 表示“该行的第一列”
因此,2G0i#
将在插入模式下转到第 2 行、第 0 列,然后输入#
。