gpt4 book ai didi

vim - 表格.vim : how to align on the first occurrence of 2 different delimiters placed at the beginning of Words?

转载 作者:行者123 更新时间:2023-12-02 05:17:39 24 4
gpt4 key购买 nike

我已经安装了 Tabular 插件,只要不涉及复杂的正则表达式,它对我来说就非常有用......

但是我有这个列表:

one @abc @rstuvw &foo  
three @defg &bar
four @mn @opq &kludge &hack
twelve @hijkl &baz &quux

我希望以这种方式对齐(首先在 @... 上,然后在 &... 上):

one    @abc @rstuvw &foo  
three @defg &bar
four @mn @opq &kludge &hack
twelve @hijkl &baz &quux

这意味着我同时遇到了 3 个问题:

  • 在第一次出现时对齐
  • 2 个不同的分隔符(@ 和 &)
  • 这并不是真正的分隔符,而是单词开头的“特殊字符”

这远远超出了我对正则表达式和 Tabular.vim 的理解

我应该如何进行?

最佳答案

在第一次出现时对齐

The help file解释这个问题,可以使用这个命令:

:Tabularize /^[^@]*\zs@/l1l0

一点解释:

  • ^ 表示行的开头
  • [^@]* 匹配除 @ 之外的所有内容。 * 表示 0 次或多次,尽可能多
  • \zs 将正则表达式的开头放在这里(从这一点开始的所有内容都是匹配的)
  • @ 上一句中的“这一点”表示 @ 符号
  • /l1l0 表示将第 1 个 block 向左对齐并添加 1 个空格 (l1),将第 2 个 block 向左对齐并添加 0 个空格 ( l0)

对齐 2 个不同的分隔符

您需要用 2 个命令来完成此操作。为了让您的生活更轻松,您可以name the pattern并使用该名称:

:AddTabularPattern f_at /^[^@]*\zs@/l1l0
:AddTabularPattern f_and /^[^&]*\zs&/l1l0

现在你可以运行了

:Tabularize f_at
:Tabularize f_and

映射命令

您甚至可以映射这些方法来生成简单的快捷方式。了解更多相关信息here

关于vim - 表格.vim : how to align on the first occurrence of 2 different delimiters placed at the beginning of Words?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13330486/

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