首页 > 解决方案 > 如何让编辑器通过选定文本中的单个字符垂直对齐?

问题描述

假设我有一个文档(它恰好是一个 BibTeX 文件),其中包含数千个这样的条目:

@article{hierarchy_problem_1,
    title = {Dynamics of spontaneous symmetry breaking in the Weinberg-Salam theory},
    author = {Susskind, Leonard},
    journal = {Physical Review D},
    volume = {20},
    number = {10},
    pages = {2619--2625},
    year = {1979},
    month = {November},
    publisher = {American Physical Society}
}

我希望能够选择其中一个,或者可能是一堆,并让它们改变为由单个字符垂直对齐,在这种情况下是“=”字符,所以它变成这样:

@article{hierarchy_problem_1,
    title                = {Dynamics of spontaneous symmetry breaking in the Weinberg-Salam theory},
    author               = {Susskind, Leonard},
    journal              = {Physical Review D},
    volume               = {20},
    number               = {10},
    pages                = {2619--2625},
    year                 = {1979},
    month                = {November},
    publisher            = {American Physical Society}
}

我现在选择的编辑器是 Geany(它可以将选定的文本发送到一些外部的自定义命令——上下文菜单 > 格式 > 发送选择到),但我会接受任何事情。请记住,某些论文的标题可能包含“=”字符,有什么好的方法可以做到这一点?我怀疑至少在“journal”之类的文本之后的一行中的“=”字符将是该字符的第一个实例,然后它会在它之前按顺序添加空格(我宁愿避免使用制表符)它最终会出现在第 30 列。有什么方法可以做到这一点?

标签: alignmenteditgeany

解决方案


也许 shell/regex 专家可以构建用于自定义命令的脚本。

就个人而言,在您的情况下,我将:

  1. <tab>在文档中设置列表
  2. 搜索并替换 =<tab><tab><tab><…&gt;=
  3. 使用垂直选择调整距离(需要插件Extra Selection)。

推荐阅读