我有这样的文本:
1;a;3;;
2;abc;4;;
3;abcde;5;;
我想在notepad++中将文本对齐到右侧,效果如下:
1;a;3;;
2;abc;4;;
3;abcde;5;;
如何做到这一点?
我有这样的文本:
1;a;3;;
2;abc;4;;
3;abcde;5;;
1;a;3;;
2;abc;4;;
3;abcde;5;;
如何做到这一点?
用例1的解决方案(续)
^(.+?)(\h+)
\2\1
用例2的解决方案
将用作分隔符的字符“;”复制到剪贴板中,并选择所有行。
选择 TextFX -> TextFX Edit -> Line up multiple lines by (Clipboard Character):
特殊用例3按下Ctrl+Alt+R可以将您的文本右对齐。
CodeWright曾经使用上下文菜单来实现此功能。选择您的框,然后选择“右对齐”,您的列将被右对齐。这是一个非常有用的功能,如果您能使其更易于使用,许多用户将更频繁地使用它 :)
CodeWright
?欢迎提供截图。 - Toto这可以通过三个步骤完成。第一步:手动查找文件中最长行的长度,将其记为N
。第二步,在每行开头添加N
个空格。第三步,删除每行前面的空格,使它们各自具有N
个字符。
更详细地说:
第一步,手动扫描文件以查找最长行并计算字符数。这给出了N
。
对于两个替换,确保未选择“点匹配换行符”。
第二步,使用正则表达式替换^(.)
为____\1
,其中____
是N
个空格。还有其他添加这些空格的方法,例如使用列模式选择每行开头的零宽度列,然后键入N
个空格。
第三步,使用正则表达式替换^ +(.{N})$
为\1
。当然,N
被N
的值替换。
您想要右对齐的文本必须位于以下矩形块中。如果您需要帮助按照描述准备文本,请跳转到下面的入门提示部分。
• 不包含字符
• 左对齐
• 使用空格字符进行右侧填充以达到所需尺寸
重复应用以下正则表达式多次,直到它停止匹配:
<PATTERN>(^.*?) (?= *$)</PATTERN>
<REPLACE> $1</REPLACE>
有许多方法可以得到符合上述标准的矩形文本块,而这些技术和场景会产生很多变化。大部分与问题无直接关系,因此我不会尝试展示详细步骤,而是在这里列出一些有用的要点。
要将文本左对齐,或等效地说,去除每行开头的空白字符,选择所需的行,然后按下shift-tab键多次,直到每行都被压在最左边。
要将TAB转换为SPACE字符,请使用编辑/空操作/TAB转换为空格菜单选项。
注意
:如果您计划将所选行或矩形文本块复制到新的临时文档中以便于处理,则应该在复制之前在原始源文档上应用TAB-to-SPACE转换,因为文档内的起始列位置会影响转换过程。
虚拟空间是文档中任何在其各自行的末尾字符右侧的空白区域。要将打字光标放置在虚拟空间中,请使用alt-鼠标单击。
入门提示
:如果您不熟悉在Notepad++中操作空格和虚拟空间,您可能会想要打开可见空格功能。从查看/显示符号菜单中选择它。
要在行末添加空格字符,只需将光标放置在虚拟空间的所需位置,并按下空格键。该行将被填充空格,以便光标处不再是虚拟空间,而是一个空格字符。
要创建用于复制、粘贴、删除或输入文本的矩形选择,请使用alt-鼠标拖动。
矩形选择可以跨越虚拟空间。如果复制了跨越虚拟空间的矩形块,则这些区域将作为虚拟空间进行复制(即没有右填空格)。如果然后将此块粘贴到与其交叉的有文本的行中,则可能会弄乱文档。
您可以使用创建零字符宽度的矩形选择(参见上一个提示),来创建一个高垂直的打字“光标”,使您能够同时在多个行上进行打字。
要一次性向许多行右填空格,请创建一个高垂直的光标(参见上一个提示),然后按键盘上的空格键。
注意
:在此处右填空格时,填充可能会包括超出您想要的空格字符一个空格字符。这是因为SPACE字符会被添加直至并包括您在虚拟空间中点击的位置。如果是这样,请按下回退键即可。
用空格字符将您的左对齐文本向右填充到所需大小。尽管在示例中没有显示,但所需的右填充可以超出最长行。只需确保区域是矩形且填充到所需宽度即可。右侧图像显示了最终的右对齐结果。