【问题标题】:How to align text to the right with notepad++?如何使用记事本++将文本向右对齐?
【发布时间】:2017-10-30 10:01:29
【问题描述】:

我有这样的文字:

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

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

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

如何做到这一点?

【问题讨论】:

    标签: regex notepad++ text-formatting


    【解决方案1】:

    我认为您需要两个主要步骤。在 Notepad++ 中,选择 Plugins -> Plugin Manager 并检查是否安装了 TextFX Characters 插件。

    用例 1 的解决方案

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

    用例 1 的解决方案(续)

    • Ctrl+H
    • 查找内容:^(.+?)(\h+)
    • 替换为:\2\1
    • 检查环绕
    • 检查正则表达式
    • 全部替换

    用例 2 的解决方案

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

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

    特殊用例 3

    顺便说一句 - 您可能想要使用 Ctrl+Alt+R 来查看和写入右对齐并通过使用切换回来 Ctrl+Alt+L左对齐。

    【讨论】:

    • CTRL+ALT+R 并选择所有行和SHIFT+TAB.....多次
    【解决方案2】:

    这可以通过三个步骤来完成。第一:找到文件中最长行的长度,设为N。其次在每行的开头添加N 空格。第三,从每行中删除前导空格,以便它们每个都有 N 字符。

    更详细:

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

    对于这两种替换,请确保未选择“点匹配换行符”。

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

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

    【讨论】:

      【解决方案3】:

      1。准备矩形块

      您要右对齐的文本必须在一个矩形块中,如下所示。如果您在准备文本时需要帮助,请跳至下面的入门提示部分。

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


      2。技术

      多次重复应用以下regular expression,直到它停止匹配:

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


      额外 - 初学者提示(使用矩形文本)

      有很多方法最终得到满足上述标准的矩形文本块,并且技术和场景产生了很多变化。其中大部分与手头的问题没有直接关系,因此我不会尝试显示详细的步骤,而是在此处列出一些有用的点。

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

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

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

      • 虚拟空间是文档中位于其相应行最后一个字符右侧的任何空白区域。要将打字光标放置在虚拟空间中,请使用 alt-mouse-click

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

      • 右填充一行空格字符,只需将光标放在虚拟空间中所需的位置,然后按空格键。该行将用空格填充,因此光标处不再有虚拟空格,而是一个空格字符。

      • 要为复制、粘贴、删除或键入文本创建矩形选择,请使用alt-鼠标拖动

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

      • 您可以使用创建一个高垂直输入“光标”,通过创建一个零字符宽的矩形选择(参见上一个提示),让您一次在多行上输入。

      • 要一次right-pad 多行,请创建一个高垂直光标(参见上一个提示)并按键盘上的空格

        note:当 right-padding 行如此处所述时,填充可能包含一个额外的空格字符你打算。这是因为空格字符被添加直到并包括您在虚拟空间中单击的位置。如果是这样,只需按 backspace


      3。示例

      用空格字符将左对齐的文本向右填充到所需的大小。尽管示例中未显示,但所需的右填充可以延伸到最长的线之外。只需确保该区域是矩形并填充所需的宽度即可。右图显示了最终右对齐的结果。

         

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

      【讨论】:

      • 对于左对齐使用菜单 > 空白操作 > 修剪前导空格(不需要 shift-tabbing)。对于矩形选择,使用 alt 键加鼠标拖动(不是控制加鼠标拖动)。要使用空格右填充一组行,请在最长行之后选择一个虚拟空格矩形,然后键入一个空格字符。
      【解决方案4】:

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

      【讨论】:

      • 你在哪里找到CodeWright?欢迎截图。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-08-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-01-27
      相关资源
      最近更新 更多