如何在notepad++中将文本对齐到右侧?

5

我有这样的文本:

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

我想在notepad++中将文本对齐到右侧,效果如下:
    1;a;3;;
  2;abc;4;;
3;abcde;5;;

如何做到这一点?

5个回答

2
我认为这里需要两个主要步骤。在Notepad++中,选择Plugins -> Plugin Manager,检查是否安装了TextFX Characters插件。
用例1的解决方案
  1. 搜索最长的一行,
  2. 将光标设置到最长行的结尾,
  3. 按住Alt键,
  4. 单击左键并将鼠标移动到左上角,
  5. 转到菜单TextFX > TextFX Edit > Pad rectangular selection with space,
  6. 对于左下角(也要选择空的最后一行),重复以上步骤,
  7. 保存文件,如下图所示。

enter image description here

用例1的解决方案(续)

  • Ctrl+H
  • 查找内容:^(.+?)(\h+)
  • 替换为:\2\1
  • 勾选 Wrap around
  • 勾选 Regular expression
  • 全部替换

用例2的解决方案

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

选择 TextFX -> TextFX Edit -> Line up multiple lines by (Clipboard Character):

enter image description here

特殊用例3
顺便提一下 - 您可能想使用 Ctrl+Alt+R 查看和写入右对齐,使用 Ctrl+Alt+L 切换回左对齐。

CTRL+ALT+R 并选择所有行,然后按 SHIFT+TAB..... 多次。 - lsalamon

1

按下Ctrl+Alt+R可以将您的文本右对齐。


0

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


你在哪里找到 CodeWright?欢迎提供截图。 - Toto

0

这可以通过三个步骤完成。第一步:手动查找文件中最长行的长度,将其记为N。第二步,在每行开头添加N个空格。第三步,删除每行前面的空格,使它们各自具有N个字符。

更详细地说:

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

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

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

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


0

1. 准备矩形块

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

        不包含字符
        左对齐
        使用空格字符进行右侧填充以达到所需尺寸


2. 技术

重复应用以下正则表达式多次,直到它停止匹配:

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

<REPLACE> $1</REPLACE>


额外 - 初学者提示(处理矩形文本)

有许多方法可以得到符合上述标准的矩形文本块,而这些技术和场景会产生很多变化。大部分与问题无直接关系,因此我不会尝试展示详细步骤,而是在这里列出一些有用的要点。

  • 要将文本左对齐,或等效地说,去除每行开头的空白字符,选择所需的行,然后按下shift-tab键多次,直到每行都被压在最左边。

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

    注意:如果您计划将所选行或矩形文本块复制到新的临时文档中以便于处理,则应该在复制之前在原始源文档上应用TAB-to-SPACE转换,因为文档内的起始列位置会影响转换过程。

  • 虚拟空间是文档中任何在其各自行的末尾字符右侧的空白区域。要将打字光标放置在虚拟空间中,请使用alt-鼠标单击

    入门提示:如果您不熟悉在Notepad++中操作空格和虚拟空间,您可能会想要打开可见空格功能。从查看/显示符号菜单中选择它。

  • 要在行末添加空格字符,只需将光标放置在虚拟空间的所需位置,并按下空格键。该行将被填充空格,以便光标处不再是虚拟空间,而是一个空格字符。

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

  • 矩形选择可以跨越虚拟空间。如果复制了跨越虚拟空间的矩形块,则这些区域将作为虚拟空间进行复制(即没有右填空格)。如果然后将此块粘贴到与其交叉的有文本的行中,则可能会弄乱文档。

  • 您可以使用创建零字符宽度的矩形选择(参见上一个提示),来创建一个高垂直的打字“光标”,使您能够同时在多个行上进行打字。

  • 要一次性向许多行右填空格,请创建一个高垂直的光标(参见上一个提示),然后按键盘上的空格键。

    注意:在此处右填空格时,填充可能会包括超出您想要的空格字符一个空格字符。这是因为SPACE字符会被添加直至并包括您在虚拟空间中点击的位置。如果是这样,请按下回退键即可。


3. 示例

用空格字符将您的左对齐文本向右填充到所需大小。尽管在示例中没有显示,但所需的右填充可以超出最长行。只需确保区域是矩形且填充到所需宽度即可。右侧图像显示了最终的右对齐结果。

enter image description here     enter image description here

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

输入图像描述


对于左对齐,请使用菜单>空白操作>修剪前导空格(无需使用Shift-Tab)。要进行矩形选择,请使用Alt键加上鼠标拖动(而不是Ctrl加上鼠标拖动)。要在一组行的右侧填充空格,请选择最长行后的虚拟空间矩形,然后输入一个空格字符。 - AdrianHHH

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接