Tabular.vim:如何对齐位于单词开头的两个不同分隔符的第一次出现?

2023-11-23

我已经安装了 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 的理解

我应该如何进行?


在第一次出现时对齐

帮助文件解释这个问题,可以使用这个命令:

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

一点解释:

  • ^表示行的开头
  • [^@]*匹配不是 a 的所有内容@. The *表示 0 次或多次,尽可能多
  • \zs将正则表达式的开头放在这里(从这一点开始的所有内容都是匹配的)
  • @上一句中的“这一点”意味着@ symbol
  • /l1l0表示将第一个块向左对齐并添加 1 个空格 (l1)并将第二个块向左对齐并添加 0 个空格(l0)

对齐 2 个不同的分隔符

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

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

现在你可以运行

:Tabularize f_at
:Tabularize f_and

映射命令

您甚至可以映射这些方法来生成简单的快捷方式。阅读更多相关内容here

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Tabular.vim:如何对齐位于单词开头的两个不同分隔符的第一次出现? 的相关文章

  • 在 Vim 中平滑滚动的最佳方法是什么?

    Vim 中的主要滚动命令是 Ctrl B and Ctrl F as well as PageUp and PageDown scroll by full page Ctrl U and Ctrl D scroll half a page
  • vim 的 @@ 变量是什么?

    我知道通过输入 我执行最后一个 命令 但谁能解释一下什么 是在下面的代码中 在 vim 帮助文件中找到 function CountSpaces type let sel save selection let reg save if a 0
  • Vim 状态栏预测/完成?

    昨天我玩了一些 vim 脚本 并设法对我目前正在输入的内容进行一些超出状态栏的预测 通过循环 请参阅屏幕截图 灰色 黄色条 问题是 我不记得我是如何得到它或找到我用于 vim 魔法的代码片段 我记得它非常简单 它要么是文档中的示例 要么是我
  • 我可以在 VIM 或 Perl 中替换单个正则表达式中的多个项目吗?

    假设我有字符串 The Quick Brown Fox Jumps Over the Lazy Dog 我可以用一个正则表达式将其更改为 The Slow Brown Fox Jumps Over the Energy Dog 吗 目前 我
  • 如何在 IdeaVIM 中配置 Vim 的 Ctrl + N 和 Ctrl + P 补全?

    在Vim中我们可以使用Ctrl N or Ctrl P完成代码补全 如何在 IdeaVim for IntelliJ 中配置它 Alt and Alt Shift 既可以在普通 IntelliJ 中工作 也可以在安装了 IdeaVim 的情
  • 有没有办法改变vim的默认模式

    有谁知道如何更改vim的默认模式 它的默认模式是命令模式 但是我可以将其更改为插入模式吗 只需将以下行添加到您的 vimrc 中 start Vim s default mode will be changed to Insert mode
  • 有没有办法在 (g)Vim 中突出显示多个搜索?

    我想在 Vim gVim 中搜索多个字符串 并用不同的颜色突出显示它们 有没有办法用开箱即用的 Vim 或插件来做到这一点 在 vim 编辑器中突出显示多个单词有两种简单的方法 进入搜索模式 即输入 然后输入 v后面是您要搜索的单词 以 分
  • 如何使用 system() 函数的第二个参数(输入)

    vim 的文档system函数对第二个参数是这样说的 当给出 input 时 该字符串将写入文件并作为标准输入传递给命令 我从中了解到的是 如果你system通话看起来像这样 call system node something js fi
  • Vi/vim - 从末尾行删除,包括最后一个字符

    我想做类似这个问题的事情VI VIM 删除 更改从右到左 https stackoverflow com q 9154212 301527即从行尾删除到该行中 的最后一个实例 这可以使用dT 将光标放置在该行的末尾 然而 这个命令和其他这样
  • Vim 与 tmux 相得益彰

    NERDTree 在 tmux 会话中出现问题 如图所示 当窗口被分割时也存在同样的问题 但现在我正在使用电源线 https github com Lokaltog powerline这次 Vim 状态在 tmux 中变得混乱 在图中看到状
  • VIM语法折叠:禁用折叠多行注释

    我在 vim 7 3 中使用 语法 折叠方法 在 vimrc中 set foldmethod syntax 当我打开 Test cpp 时 包含 A function with a multi line comment This takes
  • 在 Vim 中移至当前单词的末尾

    通常我使用ea将某些内容附加到单词上 但是 如果光标已经位于单词的最后位置 则此方法不起作用 ea将使光标移动到末尾next word 我很想知道是否有任何移动到末尾的热键current即使光标已经位于单词的最后位置 也会显示单词 Than
  • 按文件类型设置 Vim 空白首选项

    在我的工作中 我需要遵循房屋风格进行缩进 如下所示 编码 html 和 ruby 时有 2 个空格 编码 javascript 时使用制表符 建议使用 tabwidth 4 为每个文件类型指定不同的空白首选项的最佳方法是什么 方法有很多 但
  • vim 中的语法高亮

    当我在 vim 中打开语法颜色时 我无法在黑色上阅读深蓝色 如何更改一些默认颜色或模式颜色 例如 http www vim org scripts script php script id 1571 http www vim org scr
  • 如何设置 Vim 进行 Android 开发?

    谁能描述一下用于 Android 开发的良好 Vim 设置吗 我现在使用 Eclipse 但我真的很想使用 Vim 因为它更快 而且我更喜欢它 例如 我对 Eclim 不感兴趣 我对使用哪些 Vim 插件 用于 Java 自动完成等 如何
  • 如何使用 vim 作为“git show”编辑器?

    全部如所述如何使用 vim 作为 git log 编辑器 https stackoverflow com questions 16666009 how do i use vim as git log editor不适用于 git show
  • vim 按语法高亮类型搜索

    我正在将 i18n 添加到现有项目 Web 应用程序 这涉及到用对 i18n 库的调用来替换静态文本的每一位 如果能够搜索该文本 而不是依靠语法突出显示来直观地识别它 将会很方便 在 vim 中 是否可以在文件中搜索特定突出显示类型的出现
  • Vim 和 Mac:如何在不使用 pbcopy 的情况下复制到剪贴板

    我有一个同时支持剪贴板和 xterm clipboard 的 vim 版本 然而 y or y不要复制到系统剪贴板 我知道我可以使用 w pbcopy 甚至为其创建快捷方式 但我真的想要标准方式 我也看到了 fakeclip 但希望找到一个
  • 我应该在 .vimrc 文件中使用单引号还是双引号?

    单个 和双 在 Vim 中引用 它会造成速度差异吗 在其中运行函数时 使用其中一个更好还是另一个更好 这有什么关系吗 我对它们在以下方面的用途特别感兴趣 vimrc file 我这么问是因为我发现人们在同一件事上使用这两种方法 我想知道它们
  • Vim - 在插入模式下删除行

    我可以在插入模式下删除一行吗 因为目前我必须按

随机推荐

  • 将字符串转换为日期时间(使用 SSIS)

    我想将值 5 27 2013 16 42 37 490000 从平面文件 DT STR 读取 插入到 SQL Server 表的列 日期时间 中 如果我尝试在派生列中使用 DT DBDATE 或 DT DBTIMESTAMP 对其进行强制转
  • 忽略 Xcode4 中的“属性不可用”警告

    我在工具栏项中使用了很多 自定义标识符 这在 Xcode4 中很好 但在构建项目时它给了我一堆警告 属性不可用 Interface Builder 3 2 之前版本中的自定义标识符 有没有办法在Xcode4中忽略这些警告 当我搜索 真正的
  • Chart.js 中饼图的点击事件

    我有一个关于 Chart js 的问题 我使用提供的文档绘制了多个饼图 我想知道单击其中一个图表的某个切片是否可以根据该切片的值进行 ajax 调用 例如 如果这是我的data var data value 300 color F7464A
  • 学习MFC编程的先决条件[关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 目前不接受答案 我懂一点 C 和 C 我现在正在处理的项目是大量的 MFC 编程 有经验的人可以告诉我学习MFC的前提条件吗 另外 什么是最好的学习来源 有什么特别
  • 堆插入的 O(1) 平均情况复杂度的论证

    索赔要求二进制堆的维基百科页面插入是 O logn 在最坏的情况下 但平均 O 1 所需的操作数量仅取决于新元素必须上升到满足堆性质的层数 因此插入操作的最坏情况时间复杂度为 O logn 但平均情况复杂度为 O 1 The 链接页面试图证
  • 基数树/patricia trie 中的前缀搜索

    我目前正在实现一个基数树 帕特里夏特里 无论你想怎么称呼它 我想用它在功能严重不足的硬件上的字典中进行前缀搜索 它应该或多或少像自动完成一样工作 即 e 显示与键入的前缀匹配的单词列表 我的实现是基于关于这篇文章 但其中的代码不包括前缀搜索
  • kotlin合约的目的是什么

    正在阅读 apply 函数代码源并发现 contract callsInPlace block InvocationKind EXACTLY ONCE 并且合约有一个空体 实验性的 ContractsDsl ExperimentalCont
  • “_csv.writer”对象没有属性“write”

    我不确定这里出了什么问题 我有一个想要过滤的 csv 文件 我想删除以 开头的所有行以及第三列是字符串 chrM 的所有行 我基本上将我的代码设置为类似于这里的答案 类型错误 需要一个字符缓冲区对象 但我收到错误 import re imp
  • 为 NSNotificationCenter = Swift deinit() 调用 .removeObserver 的正确位置?

    我读过很多关于为 NSNotificationCenter 调用 removeObserver 的正确位置的建议 因为 viewDidUnload 不是一个选项 我只是想知道 Swift 中新的 deinit 是否是一个不错的选择 nick
  • 如何阅读 ex_intro 的定义?

    我正在阅读Mike Nahas 的 Coq 入门教程 其中说 ex intro 的参数是 谓词 证人 与证人一起提出的谓词的证明 我在看定义 Inductive ex A Type P A gt Prop Prop ex intro for
  • Pandas 群体中的独特价值

    我有一个数据框 需要对其进行分组 然后进行分组 我需要从子组中返回子组是什么以及列的唯一值 df pandas DataFrame country pandas Series US Canada US US gender pandas Se
  • 使用 MongoDB 的简单投票系统

    快速问题我在 mongodb 中有一个文章列表 我希望用户能够对文章投赞成票或反对票 我的第一种方法是在文章集中有两行 分别称为 赞成票 和 反对票 它们的数字如下 点赞数 360 否决票 102 那么我需要通过求和来订购 赞成票 反对票这
  • JSON 中可以使用注释吗?

    我可以在 a 中使用注释吗JSON文件 如果是这样 怎么办 No JSON 是纯数据的 如果您包含评论 那么它也必须是数据 您可以有一个名为的指定数据元素 comment 或其他内容 应被使用 JSON 数据的应用程序忽略 您可能最好在生成
  • 使用通用迭代器访问数组数组的元素

    Is it 未定义的行为在 C 中访问相邻数组中的元素 如以下代码所示 include
  • Shiny 的 tabsetPanel 未在多个选项卡中显示绘图

    我正在尝试使用多个tabPanel控制范围内的tabsetPanel in Shiny 假设我使用以下代码从一个选项卡开始 mainPanel tabsetPanel tabPanel Plot plotOutput distPlot 代码
  • 在 AWS ECR 上重新标记映像会创建新映像

    我在 AWS ECR 上有一个私有 Docker 存储库 我正在尝试按照此处的说明使用新标签来标记现有图像https docs aws amazon com AmazonECR latest userguide image retag ht
  • 如何在 testNG 报告中包含失败屏幕截图

    目前我正在通过这种方式截取测试失败的屏幕截图 AfterMethod alwaysRun true public void catchExceptions ITestResult result Calendar calendar Calen
  • 在 Mac OS X 上多态捕获 -fno-rtti 共享库中的异常

    我正在构建一个共享库f no rtti 在内部 这个库抛出std invalid argument并捕获std exception 但是catch从未输入子句 以下代码重现了该问题 g 4 2 Mac OS X 10 6 library c
  • 具有条件字段的骨干形式

    首先感谢各位大佬骨干形式谁制作了一个完美集成在backbone js框架中的工具 我正在使用backbone js 和backbone forms 插件 但我需要创建条件字段 假设我有以下表格 我想根据在中选择的值显示 或不显示 带有 th
  • Tabular.vim:如何对齐位于单词开头的两个不同分隔符的第一次出现?

    我已经安装了 Tabular 插件 只要不涉及复杂的正则表达式 它对我来说就非常有用 但我有这个清单 one abc rstuvw foo three defg bar four mn opq kludge hack twelve hijk