gpt4 book ai didi

vim - 仅在 VIM 中的第一个分隔符上对齐文本

转载 作者:行者123 更新时间:2023-12-04 00:03:42 28 4
gpt4 key购买 nike

假设我有这个代码:

width: 215px;
height: 22px;
margin-top: 3px;
background-color: white;
border: 1px solid #999999;

我想这样对齐它:
width:            215px;
height: 22px;
margin-top: 3px;
background-color: white;
border: 1px solid #999999;

使用 Align.vim 我可以做到 :Align \s使用空格作为分隔符,但这有两个问题
  • 初始缩进加倍
  • 全部 空格被认为是分隔符,所以最后一行搞砸了

  • 我已经阅读了 Align.vim 提供的许多选项,但我还没有找到一种方法来做到这一点。

    最佳答案

    你可以用一个 Vim 宏来做到这一点,不需要插件。将光标放在第一行的任意位置,然后在普通模式下键入,而不是在插入模式下:

    qa0f:w100i <Esc>19|dwjq4@a

    注意 100i 后面的单个空格, 的意思是“按 Esc”——不要按字面意思输入“ ”。

    翻译:
    qa         -- record macro in hotkey a
    0 -- go to beginning of line
    f: -- go to first : symbol
    w -- go to next non-space character after the symbol
    100i <Esc> -- insert 100 spaces
    19| -- go to 19th column (value 19 figured out manually)
    dw -- delete spaces until : symbol
    j -- go to next line
    q -- stop recording macro
    4@a -- run the macro 4 times (for the remaining 4 lines)

    是的,我使用了一个类似的宏来格式化上面的代码块:)

    Cf. my answer to a similar Vim alignment question .

    要将其应用于可视模式下的多行,请执行、选择并键入:
    :norm!@a

    关于vim - 仅在 VIM 中的第一个分隔符上对齐文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2129519/

    28 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com