寻找一种简单的方法来对齐文本

问题描述 投票:0回答:8

我有一个常见问题,正在寻找解决方案。 我有几行类似的文本,我想以某种方式自动插入文本以垂直对齐它们 这样:

x="foo" data="123" y=x
x="b  4" data="12 " y=x
x="baaar4" data="123aaa5" y=x
x="baaaa,4" data="123dddd5" y=x

变成这样了

x="foo"     data="123"      y=x
x="b  4"    data="123 "     y=x
x="baaar4"  data="123aaa5"  y=x
x="baaaa,4" data="123dddd5" y=x

这是一个文本问题。输入来自记事本。输出将写入记事本。这不是格式问题。

notepad++
8个回答
64
投票

Notepad++ 有一个插件可以为您完成此操作。这称为“代码对齐”。它允许您根据您选择的字符垂直对齐文本。您可以通过记事本插件管理器安装它。

下面是一个简单的使用场景。您从以下代码开始,然后通过“等于”对齐,这是插件的内置快捷方式/命令。

Initial Code Sample, without alignment

之后,您将得到以下结果:

Code after equals alignment

您还可以更进一步,使用“align by...”命令,该命令允许您指定任意对齐字符串。在下面的示例中,我选择了“#”字符,以便将我的注释彼此对齐。这很可能是一根较长的字符串,而不是长度为 1 的字符串。

最终结果如下:

Final result after arbitrary code alignment string


29
投票

如果您想按特定字符对齐,请使用 Notepad++ 扩展 TextFX。

查看:TextFX > TextFX 编辑 > 按 (,) 排列多行

还有:通过(=)排列多行、通过(剪贴板字符)排列多行

这里是有关编程有用提示的链接。

http://techbrij.com/518/10-notepad-tips-tricks-fast-development


6
投票

Notepad++ TextFX 不再受支持和维护。代码对齐插件仅对齐第一次出现的列对齐字符。

我使用免费的在线服务解决了问题: https://onlinetexttools.com/convert-text-to-nice-columns


3
投票

ElasticTabstops 实际上正是我在使用选项卡时正在寻找的工作。 对齐而不添加字符(空格或制表符)。


0
投票

我创建了一个可以与 Notepad++ 中的 Python 脚本插件一起使用的 Python 脚本:nppPyAlignColumn


0
投票

您没有列出编程语言,因此这里有一些执行请求操作的 C#:

int[] maxLengths = new int[100];
string[][] splitLines = new string[input.Length][];
for (int i = 0; i < input.Length; i++)
{
    splitLines[i] = input[i].Split(' ');
    for (int j = 0; j < splitLines[i].Length; j++)
    {
        maxLengths[j] = Math.Max(maxLengths[j], splitLines[i][j].Length);
    }
}
for (int i = 0; i < splitLines.Length; i++)
{
    for (int j = 0; j < splitLines[i].Length; j++)
    {
        Console.Write(string.Format("0,-" + (maxLengths[j] + 1) + ":G}", splitLines[i][j]));
    }
    Console.WriteLine();
}

请注意,100 必须大于或等于每行的段数。如果您愿意,您可以通过一些工作使该数字不被修复。

基本上,该算法根据空格分割每一行,然后将每个部分的最大值计算到一个公共数组中。最后,它循环遍历所有这些分段部分,并使用最大尺寸的空格左对齐打印它们(加 1 以获取项目之间的空间)。


0
投票

弹性制表符插件对齐行和列中混乱的文本

enter image description here

在记事本++中安装


0
投票

我用 C# 编写了一个程序,可以帮助您创建文本列或 .bdf nastran 文件。有关该软件如何工作的更多信息,您可以观看此视频并评论它以向您提供该软件。 https://www.youtube.com/watch?v=nsTkeEj15xo

© www.soinside.com 2019 - 2024. All rights reserved.