使用 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 列,然后输入#
。