如何使用notepad ++将文本对齐?

时间:2017-10-30 10:01:29

标签: regex notepad++ text-formatting

我有这样的文字:

1;a;3;;
2;abc;4;;
3;abcde;5;;

我想用notepad ++将文本右对齐,所以变成这样:

    1;a;3;;
  2;abc;4;;
3;abcde;5;;

怎么做?

4 个答案:

答案 0 :(得分:1)

我想你在这里需要两个主要步骤。在Notepad ++中,选择Plugins - >插件管理器并检查是否安装了 TextFX Characters 插件。

用例1的解决方案

  1. 搜索最长的一行,
  2. 将光标设置为最长行的末尾
  3. 按住 Alt
  4. 单击鼠标左键并将鼠标移动到左上角,
  5. 转到菜单TextFX> TextFX编辑>用空格填充矩形选区,
  6. 重复左下角的步骤(也选择空的最后一行),
  7. 将文件保存为左下角,如下面的屏幕截图所示。
  8. enter image description here

    用例1的解决方案(续)

    • 控制 + ħ
    • 找到:^(.+?)(\h+)
    • 替换为:\2\1
    • 检查环绕
    • 检查正则表达式
    • 全部替换

    用例2的解决方案

    复制用作分隔符的字符“;”到剪贴板并选择所有行。

    选择TextFX - > TextFX编辑 - >按(剪贴板字符)排列多行:

    enter image description here

    特殊用例3

    顺便说一下 - 你可能想用 Ctrl + Alt + R 查看和书写右对齐并切换回来  左对齐 Ctrl + Alt + L

答案 1 :(得分:0)

这可以通过三步过程完成。首先:找到文件中最长行的长度,将其设为N。第二步将N空格添加到每行的开头。第三,从每行中删除前导空格,使它们各自具有N个字符。

更详细:

第一步,手动扫描文件以找到最长的行并计算字符数。这给出了N

对于这两种替换,确保" Dot匹配换行符"没有被选中。

第二步,使用^(.)替换____\1正则表达式,其中____N个空格。还有其他添加这些空格的方法,例如使用列模式在每行的开头选择零宽度列,然后键入N空格。

第三步,使用^ +(.{N})$替换\1正则表达式。当然,N替换为N的值。

答案 2 :(得分:0)

1。准备矩形块

右对齐的文本必须位于矩形块中,如下所示。如果您需要按说明准备文本的帮助,请跳到下面的 入门提示 部分。

包含没有TAB字符
左对齐
用空格字符右填充到所需的大小


2。技术

重复多次应用以下regular expression,直到不再匹配:

<PATTERN>(^.*?) (?= *$)</PATTERN>

<REPLACE> $1</REPLACE>


其他-入门技巧(使用矩形文本)

有多种方法最终可以使矩形文本块满足上述条件,并且各种技术和方案都会产生很大的差异。其中大多数与手头问题没有直接关系,因此,我将尝试在此处列出一些有用的信息,而不是尝试显示详细的步骤。

  • 左对齐文本,或者等效地,从每行删除前导空格,选择所需的行,然后按 shift - tab 多次,直到每一行都一直塞到最左边。

  • 要将TAB转换为SPACE字符,请使用“编辑” /“空白操作” /“将TAB转换为空格” 菜单选项。

    note :如果计划将选定的文本行或矩形块复制到新的临时文档中以便于处理,则可以将TAB转换为SPACE通常应在复制之前将其应用于原始源文档 ,因为文档中的起始列位置会影响转换过程。

  • 虚拟空间是文档中相应行上最后一个字符右边的任何空白区域。要将键入光标放置在虚拟空间中,请使用 alt -鼠标单击

    starter hint :如果您不熟悉在Notepad ++中操作空白和虚拟空间,则可能需要打开可见空白功能。从查看/显示符号菜单中选择它。

  • 右击一行带有空格字符的行,只需将光标置于虚拟空间中的所需位置,然后按 space 键。该行将用空格填充,以便不再有虚拟空间,而是光标处的空格字符。

  • 要创建用于复制,粘贴,删除或键入文本的矩形选择,请使用 alt -鼠标拖动。 / p>

  • 矩形选择可以跨越虚拟空间。如果复制了跨越虚拟空间的矩形块,则将这些区域复制为虚拟空间(即,未用空格右填充)。如果将此块粘贴到目标位置,使其与右边有文本的行相交,则可能会造成混乱。

  • 您可以使用创建一个高大的垂直键入“光标”,通过创建一个零字符宽的矩形选择(请参阅上一个技巧)来一次在多行上键入。

  • 要一次右击多行,请创建一个高的垂直光标(请参见上一个技巧),然后在键盘上按 space

    note :如此处所述右填充行时,填充可能包含一个额外的空格字符超出您的预期。这是因为SPACE字符被添加到最多并包括 您在虚拟空间中单击的位置。如果是这样,只需按 backspace


3。示例

将带有空格字符的左对齐文本右移至所需大小。尽管未在示例中显示,但所需的右填充可以超出最长的行。只要确保该区域是矩形并填充所需的宽度即可。右图上的图像显示了最终右对齐的结果。

enter image description here

正则表达式将每行文本向右移动一个字符,同时保持在矩形区域内。重复按“全部替换”,直到所有行都右对齐。

enter image description here

答案 3 :(得分:0)

CodeWright 过去使用上下文菜单执行此操作。选择您的框,然后选择“右对齐”,您的列将右对齐。这是一个非常有用的功能,如果你能让它更容易使用,很多用户会更频繁地使用它:)