这是命令 perltidyp,可以使用我们的多个免费在线工作站之一在 OnWorks 免费托管服务提供商中运行,例如 Ubuntu Online、Fedora Online、Windows 在线模拟器或 MAC OS 在线模拟器
程序:
您的姓名
perltidy - 一个 perl 脚本缩进和重新格式化
概要
perltidy [ 选项 ] 文件 1 文件 2 文件 3 ...
(输出到 file1.tdy、file2.tdy、file3.tdy,...)
perltidy [选项] file1 -o outfile
perltidy [选项] file1 -st >outfile
perltidy [选项] 输出文件
商品描述
Perltidy 读取 perl 脚本并编写一个缩进的、重新格式化的脚本。
许多用户会在“示例”中找到足够的信息来开始使用。 新用户可以
受益于可以在以下位置找到的简短教程
http://perltidy.sourceforge.net/tutorial.html
可以在以下位置找到系统地定义一组样式参数的便捷帮助
http://perltidy.sourceforge.net/stylekey.html
Perltidy 可以在两种模式中的任何一种上产生输出,这取决于是否存在 -html
旗帜。 如果没有这个标志,输出将通过格式化程序。 默认的
格式化尝试遵循中的建议 风格(1),但可以控制
详细介绍了许多输入参数,这些参数在“格式化选项”中进行了描述。
当。。。的时候 -html 给出标志,输出通过一个 HTML 格式化程序,它是
在“HTML 选项”中描述。
示例
perltidy somefile.pl
这将产生一个文件 某个文件.pl.tdy 包含使用重新格式化的脚本
默认选项,近似于建议的样式 风格(1). 源文件
某个文件 不变。
危险 *.pl
对所有执行 perltidy 特等 当前目录中的文件使用默认选项。 这
输出将在带有附加的文件中 .tdy 延期。 对于任何有错误的文件,
会有一个带有扩展名的文件 。呃.
perltidy -b 文件1.pl 文件2.pl
修改 文件1.pl 和 文件2.pl 到位,并将原件备份到 文件1.pl.bak 和
文件2.pl.bak。 如果 文件1.pl.bak 和 文件2.pl.bak 已经存在,它们将是
覆盖。
perltidy -b -bext='/' file1.pl file2.pl
与上一个示例相同,只是备份文件 文件1.pl.bak 和 文件2.pl.bak
如果没有错误,将被删除。
perltidy -gnu somefile.pl
对文件执行 perltidy 某个文件 风格接近 GNU 编码
C 程序的标准。 输出将是 某个文件.pl.tdy.
perltidy -i=3 somefile.pl
对文件执行 perltidy 某个文件, 每个缩进级别有 3 列 (-i=3)
而不是默认的 4 列。 重新格式化的脚本中不会有任何选项卡,
除了评论、pod 文档、引用和此处文档中已经存在的任何内容。
输出将是 某个文件.pl.tdy.
perltidy -i=3 -et=8 somefile.pl
与上一个示例相同,只是前导空格将被一个制表符嵌入
每 8 个空格字符。
perltidy -ce -l=72 somefile.pl
对文件执行 perltidy 某个文件 除了使用“cuddled elses”之外的所有默认值(-这个)
并且最大行长度为 72 列(-l=72) 而不是默认的 80 列。
perltidy -g somefile.pl
对文件执行 perltidy 某个文件 并保存日志文件 一些文件.pl.LOG 显示
在每一行的开头嵌套大括号、圆括号和方括号。
perltidy -html somefile.pl
这将产生一个文件 一些文件.pl.html 包含带有 html 标记的脚本。 这
输出文件将包含一个嵌入的样式表可以编辑的部分
改变外观。
perltidy -html -css=mystyle.css somefile.pl
这将产生一个文件 一些文件.pl.html 包含带有 html 标记的脚本。 这
输出文件将包含指向单独样式表文件的链接 我的样式文件. 如果文件
我的样式文件 不存在,它将被创建。 如果存在,则不会被覆盖。
perltidy-html-pre somefile.pl
编写一个只有 PRE 部分的 html 片段 一些文件.pl.html。 这很有用
代码片段正在格式化以包含在更大的网页中。 没有样式表
写在这种情况下。
perltidy -html -ss >mystyle.css
写一个样式表 我的样式文件 并退出。
perltidy-html-frm mymodule.pm
使用包含目录和源代码的框架编写 html。 输出文件
会 我的模块.pm.html (框架), 我的模块.pm.toc.html (目录),和
我的模块.pm.src.html (源代码)。
配置 - 产品详情
扫描整个命令行的选项,并在任何文件之前处理它们
被处理。 因此,标志是在任何之前还是之后都无关紧要
文件名。 但是,参数的相对顺序很重要,后面的参数
覆盖早期参数的值。
对于每个参数,都有一个长名称和一个短名称。 短名称很方便
用于键盘输入,而长名称是自记录的,因此在
脚本。 习惯上对长名称使用两个前导破折号,但也可以使用一个。
大多数用作开/关标志的参数可以用前导“n”否定(对于
短名称)或前导“no”或“no-”(长名称)。 例如,标志为
outdent 长引号是 -olq or --outdent-长引号. 跳过这个的标志是 -nolq or
--nooutdent-长引号 or --无缩进长引号.
选项可能不会捆绑在一起。 换句话说,选项 -q 和 -g 不能输入
as -qg.
选项名称可以提前终止,只要它们是唯一标识的。 为了
例如,而不是 --转储令牌类型, 输入就足够了 --转储托克或
甚至 --转储-t, 唯一标识此命令。
I / O 控制
以下参数涉及读取和写入的文件。
-h, - 帮帮我
显示使用摘要并退出。
-o=文件名, --输出文件=文件名
输出文件的名称(仅当正在处理单个输入文件时)。 如果不
指定了输出文件,并且输出不会重定向到标准输出(请参阅
-st),输出将转到 文件名.tdy. [注意: - 不重定向到标准
输出。 利用 -st 反而。]
-st, --标准输出
Perltidy 必须能够在单个文件中操作任意数量的文件
运行,每个输出都被定向到不同的输出文件。 显然这会
与输出到单个标准输出设备冲突,所以一个特殊的标志, -st,
要求输出到标准输出。 例如,
perltidy somefile.pl -st >somefile.new.pl
仅当只有一个输入文件时才可以使用此选项。 默认是
-nst or --无标准输出.
-se, --标准错误输出
如果 perltidy 在处理文件时检测到错误 某个文件,它的默认行为是
将错误消息写入文件 某个文件.pl.ERR。 使用 -se 导致所有错误信息
改为发送到标准错误输出流。 该指令可能被否定
- -nse. 因此,您可以放置 -se 育明在 .pertidyrc 并在需要时覆盖它
-nse 在命令行上。
-oext=分机, --输出文件扩展名=分机
将输出文件的扩展名更改为 分机 而不是默认值 泰迪 (或 HTML
如果 --html 选项)。 请参阅“指定文件扩展名”。
-路径=路径, --输出路径=路径
当 perltidy 为输出文件创建文件名时,默认情况下它只附加一个
输入文件的路径和基本名称的扩展名。 该参数导致路径
改为 径 代替。
路径应该以有效的路径分隔符结尾,但 perltidy 会尝试添加
一个如果它丢失了。
举个例子
perltidy somefile.pl -opath=/ tmp /
将产生 /tmp/somefile.pl.tdy。 除此以外, 某个文件.pl.tdy 会出现在任何
目录包含 某个文件.
如果路径包含空格,则应将其放在引号中。
如果输出被定向到标准输出,或者如果
它被明确指定为 -o=s 参数。
-b, --就地备份和修改
就地修改输入文件或文件并使用扩展名保存原始文件 .bak的.
任何现有的 .bak的 文件将被删除。 请参阅下一项更改默认备份
扩展名,并完全消除备份文件。
A -b 如果输入来自标准输入或进入标准输出,标志将被忽略,
或者如果 -html 标志已设置。
特别是,如果您想同时使用 -b 标志和 -pbp
(--perl-best-practices) 标志,那么你必须放一个 -nst 标志后 -pbp 旗
因为它包含一个 -st 标记为其组件之一,这意味着输出将
转到标准输出流。
-bext=分机, --备份文件扩展名=分机
该参数有两个用途: (1) 将备份文件的扩展名更改为
不是默认值 .bak的, 和 (2) 表示没有备份文件
应该被保存。
将默认扩展名更改为除 .bak的 请参阅“指定文件
扩展”。
始终写入源的备份文件,但您可以要求将其删除
如果没有错误,则在处理结束时。 这是有风险的,除非来源
代码由源代码控制系统维护。
要指示应删除备份,请包含一个正斜杠, /在
延期。 如果删除斜杠后仍有任何文本,它将用于定义
备份文件扩展名(它总是被创建,只有在没有
错误)。
下面是一些例子:
参数扩展备份文件处理
<-bext=bak> F<.bak> 保持(与默认行为相同)
<-bext='/'> F<.bak> 如果没有错误就删除
<-bext='/backup'> F<.backup> 如果没有错误就删除
<-bext='original/'> F<.original> 如果没有错误就删除
-w, --警告输出
设置 -w 导致将任何非关键警告消息报告为错误。 这些
包括有关可能的 pod 问题的消息,可能是错误的起始缩进级别,
以及关于间接对象使用的注意事项。 默认情况下, -西北 or --nowarning-输出,东京国立癌症中心医院
不包括这些警告。
-q, - 安静的
停用错误消息和语法检查(用于在编辑器下运行)。
例如,如果您使用 vi 风格的编辑器,例如 vim,您可以将 perltidy 作为
使用类似的东西从编辑器中过滤
:n1,n2!perltidy -q
其中“n1,n2”代表选定的文本。 没有 -q 标志,任何错误信息
可能会弄乱您的屏幕,因此请准备好使用“撤消”键。
-日志, --日志文件
拯救 。日志 文件,其中包含许多有用的诊断信息。 Perltidy 总是创建一个 。日志
文件,但默认情况下它会被删除,除非怀疑有程序错误。 设置
-日志 标志强制保存日志文件。
-g=n, --日志文件间隙=n
设置日志文件中输入代码行之间的最大间隔。 这个目的
flag 是为了帮助调试嵌套错误。 “n”的值是可选的。 如果你
立旗 -g 如果没有“n”的值,它将被视为 1,这意味着每个
行将写入日志文件。 如果您正在寻找一个
大括号、括号或括号嵌套错误。
设置 -g 也会导致保存日志文件,因此没有必要还包括
-日志.
如果不 -g 给定标志,将使用值 50,这意味着至少每 50 个
行将记录在日志文件中。 这有助于防止过长的日志文件。
设置负值“n”与不设置相同 -g 在所有。
-npro --无配置文件
忽略任何 .pertidyrc 命令文件。 通常, perltidy 在您当前的
一个目录 .pertidyrc 参数文件。 (格式如下所述)。 如果
它找到一个,将这些选项应用于初始默认值,然后
应用在命令行上定义的任何内容。 如果不 .pertidyrc 文件是
找到,它会在您的主目录中查找一个。
如果您设定 -npro 标志,perltidy 不会查找此文件。
-pro=文件名 or --profile=文件名
为了简化测试和切换 .perltidyrc 文件,此命令可用于
指定一个配置文件,它将覆盖 .perltidyrc 的默认名称。
'=' 符号两侧不得有空格。 例如,线
perltidy -pro = testcfg
会导致文件 测试配置 用于代替默认值 .pertidyrc.
路径名以三个点开头,例如“.../.perltidyrc”,表示文件
应该搜索从当前目录开始并向上工作。 这
让多个项目更容易,每个项目都有自己的 .perltidyrc
根目录。
-选择, --显示选项
写下所有使用过的选项的列表 。日志 文件。 请参见 --转储选项 查阅
更简单的方法来做到这一点。
-f, --force-读取二进制
强制 perltidy 处理二进制文件。 为避免产生过多的错误信息,
perltidy 跳过系统识别为非文本的文件。 但是,有效的 perl
包含二进制数据的脚本有时可能会被识别为非文本,并且这个标志
强制 perltidid 处理它们。
格式化 配置
基础版 可选项
--通知
此标志禁用所有格式并导致输入被原样复制到
输出除了行结束字符和任何前后
过滤器。 这可以与分层的集合结合使用 .pertidyrc
文件以避免不必要的代码整理。 另请参阅“跳过选定的代码部分”
一种避免整理特定代码部分的方法。
-i=n, --缩进列=n
每个缩进级别使用 n 列(默认 n=4)。
-l=n, --最大行长=n
默认的最大行长度为 n=80 个字符。 Perltidy 将尝试查找行
断点以保持线低于此长度。 但是,长引号和旁注
可能会导致行超过此长度。 环境 -l=0 相当于设置 -l=(一个
大 数).
-vmll, --可变最大行长
使用固定的最大行长度和非常深的嵌套代码会出现问题
数据结构,因为最终用于
表示缩进占据了大部分或全部可用线宽,留下
实际代码或数据的空间很少或没有。 一种解决方案是使用不同的长
线长。 另一种解决方案是使用 -vmll 标志,它基本上告诉
在测量行长度时忽略前导空格的风险。
准确地说,当 -vmll 参数设置,一行的最大行长
代码将是 M+L*I,其中
M是--maximum-line-length=M(-l=M)的值,默认80,
I是--indent-columns=I(-i=I)的值,默认4,
L 是代码行的缩进级别
设置此标志后,代码块的断点选择应为
基本上独立于它的嵌套深度。 然而,绝对线长,
包括前导空格,仍然可以任意大。 这个问题可以
通过包含下一个参数来避免。
默认是不这样做(-nvmll).
-wc=n, --空白循环=n
此标志还解决了嵌套非常深的代码和数据结构的问题。
当嵌套深度超过该值时 n 前导空格将减少,并且
再次从深度 1 开始。 结果是代码块将移回
向左移动而不是向右任意移动。 这会周期性地发生在任何
深度。
例如,如果一级缩进等于 4 个空格 (-i=4,默认值)和一个
使用 -wc=15, 那么如果一行的前导空格超过大约 4*15=60 个空格
将减少回 4*1=4 个空格并从那里继续增加。 如果
空白永远不会超过此限制,格式保持不变。
组合 -vmll 和 -wc=n 提供了显示问题的解决方案
有限窗口中任意深度的数据结构和代码,尽管 -wc=n 可能的
当然不用 -vmll.
默认是不使用这个,也可以用 -wc=0.
标签
使用制表符几乎肯定会导致未来的可移植性和维护性
问题,所以默认和建议是不要使用它们。 对于那些喜欢
但是,选项卡有两个不同的选项。
除了可能引入制表符缩进字符,如下所述,
perltidy 不会在您的文件中引入任何制表符,它会删除任何制表符
从代码(除非要求不要这样做 -fws)。 如果您有任何标签
评论、引用或此处的文档,它们将保留。
-et=n, --entab 前导空白
这个标志导致每个 n 由一个制表符替换的初始空格字符
特点。 注意整数 n 完全独立于整数
为缩进参数指定, -i=n.
-t, --标签
此标志导致为每一级插入一个前导制表符
缩进。 某些其他功能与此选项不兼容,如果
还给出了这些选项,然后将发出警告消息和此标志
将被取消设置。 一个例子是 -lp 选项。
-dt=n, --默认选项卡大小=n
如果传递给 perltidy 的第一行代码包含前导选项卡但没有选项卡
为输出流指定了方案,然后 perltidy 必须猜测有多少个空格
对应于每个前导标签。 这个空格数 n 对应于每个
输入流的前导标签可以用 -dt=n。 默认是 N = 8.
如果为输出流指定了选项卡方案,则此标志无效,
因为然后假设输入流使用相同的选项卡方案并且
与输出流一样的缩进空间(任何其他假设都会导致
不稳定的编辑)。
-同步, --check-语法
这个标志会导致 perltidy 运行“perl -c -T”来检查输入和输出的语法。
(要更改传递给 perl 的标志,请参阅下一项, -pscf)。 结果是
写给 。日志 文件,如果在输出中检测到错误,将保存该文件
脚本。 如果输入脚本有语法错误,则不会检查输出脚本。
Perltidy 自己进行检查,但此选项使用 perl 来获得“第二个
观点”。
如果perl在输入文件中报错,则不会在error中报错
输出除非 --警告输出 标志给出。
默认是 不是 做这种类型的语法检查(虽然 perltidy 仍然会做
尽可能多的自检)。 原因是它导致所有代码都在BEGIN
要执行的块,用于所有正在使用的模块,这为安全打开了大门
运行 perltidy 时出现问题和无限循环。
-pscf=s, -perl 语法检查标志=s
当调用 perl 来检查语法时,通常的标志是“-c -T”。 此外,如果
这些因素包括原料奶的可用性以及达到必要粉末质量水平所需的工艺。 -x 标志被赋予 perltidy,那么 perl 也将被传递一个 -x 旗帜。 这应该
通常不需要更改这些标志,但可以使用 -pscf=s
旗帜。 例如,如果不需要污点标志“-T”,则可以将该标志设置为
公正 -pscf=-c.
Perltidy 会将您的字符串传递给 perl,但它会添加一个 -c 和 -x
如果合适的话。 这 。日志 文件将准确显示传递给 perl 的标志。
-io, --仅缩进
此标志用于停用非空白中的所有格式和换行符更改
代码行。 当它生效时,对脚本的唯一更改将是
缩进和空行。 任何控制空格和换行符的标志都会
被忽略。 如果您对自己的产品非常满意,您可能想使用它
空格和换行符,只需要 perltidy 来处理缩进。 (这
还可以将 perltidy 加速两倍以上,因此在以下情况下可能很有用
perltidy 仅用于帮助查找大型脚本中的大括号错误)。
设置这个标志相当于设置 --冻结换行符 和 --冻结空白.
如果您还想保持现有的空行完全原样,您可以添加
--冻结空白行.
-ole=s, --输出行结尾=s
其中 s="win"、"dos"、"unix" 或 "mac"。 此标志告诉 perltidy 输出行
特定系统的结局。 通常, perltidy 用以下行写入文件
主机系统的分隔符。 “win”和“dos”标志具有相同的
结果。
-普尔, --保留行尾
此标志告诉 perltidy 将其输出文件写入与
如果可能,输入文件。 它应该适用于 DOS, UNIX和 MAC 行尾。 它会
仅当 perltidy 输入来自文件名(而不是标准输入,例如)时才有效。
如果 perltidy 在确定输入文件行结束时遇到问题,它将恢复为
使用主机系统行尾的默认行为。
-它=n, --迭代次数=n
这个标志导致 perltidy 做 n 完成迭代。 这个标志的原因是
代码美化是一个迭代过程,在某些情况下,输出来自
如果第二次应用 perltidy 可能会有所不同。 对于大多数目的,
默认的 N = 1 应该是满意的。 然而 N = 2 当主要风格时可能很有用
正在进行更改,或者在签入源代码时美化代码
控制系统。 已发现输出更改后极为罕见
2 次迭代。 如果一个值 n 大于 2 是输入然后收敛测试将是
用于尽快停止迭代,几乎总是在 2 次迭代之后。
有关简化的迭代控制,请参阅下一项。
使用 perltidy 生成 html 时,此标志无效。
-转换, --收敛
这个标志相当于 -它=4 并被包括在内以简化迭代控制。 为了
所有的实际目的,一个人想要或不想确保输出是
收敛,并且自 perltidy 以来使用大的迭代限制没有惩罚
将检查收敛并尽快停止迭代。 默认是
-nconv (无收敛检查)。 使用 -转换 将大约两倍的运行时间,因为
通常需要一次额外的迭代来验证收敛。
代码 缩进 通过积极争取让商标与其相匹配的域名优先注册来维护
-ci=n, --继续缩进=n
连续缩进是当长行出现时应用的额外缩进空间
破碎的。 默认值为 n=2,如下所示:
我的 $level = # -ci=2
( $max_index_to_go >= 0 )? $levels_to_go[0] : $last_output_level;
同样的例子,n=0,有点难读:
我的 $level = # -ci=0
( $max_index_to_go >= 0 )? $levels_to_go[0] : $last_output_level;
赋予的价值 -这个 当需要小空间时,某些命令也会使用它。
示例是用于缩进标签的命令, -奥拉,和控制关键字, -好的.
当不使用默认值时,建议使用该值 n 给予 -ci=n be
不超过分配给完整缩进的空格数的二分之一
水平在 -i=n 命令。
-sil=n --起始缩进级别=n
默认情况下, perltidy 检查输入文件并尝试确定起始文件
缩进级别。 虽然它通常为零,但对于代码片段可能不为零
从编辑会话发送。
猜测起始缩进级别 perltidy 简单地假设缩进
用于创建代码片段的方案与用于当前的方案相同
危险的过程。 这是唯一可以做出的合理猜测。 它应该是
如果这是真的,则正确,否则可能不会。 例如,如果输入
脚本是用 -i=2 编写的,当前的 peltidy 标志有 -i=4,错误
初始缩进将被猜测为具有非零初始值的代码片段
缩进。 同样,如果在输入脚本中使用了嵌入方案而不是在
当前进程那么猜测的缩进将是错误的。
如果默认方法不能正常工作,或者您想更改起始
水平,使用 -sil=n, 强制起始级别为 n。
使用列表缩进 -lp, --line-up-括号
默认情况下,perltidy 将列表缩进 4 个空格,或指定的任何值
-i=n. 这是一个以这种方式格式化的小列表:
# perltidy(默认)
@年月 = (
'Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun',
“七月”、“八月”、“九月”、“十月”、“十一月”、“十二月”
);
使用 -lp 添加额外缩进以导致数据从开头开始的标志
子调用或列表的括号,或匿名数组的左方括号,或
匿名散列的开大括号。 使用此选项,上面的列表将
变得:
#perltidy-lp
@年月 = (
'Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun',
“七月”、“八月”、“九月”、“十月”、“十一月”、“十二月”
);
如果可用的线长(见 -l=n ) 不允许有这么多空间,perttidy
会少用。 有关关闭括号的替代位置,请参阅下一节。
此选项对代码块没有影响,例如 if/then/else 块,它们总是
使用任何指定的 -i=n. 此外,存在换行符和/或块
开头和结尾括号之间的评论可能会导致临时性
恢复到它的默认方法。
注意: -lp 选项不能与 -t 选项卡。 有可能,
但是,与 -et=n 选项卡方法。
此外,任何显着限制 perltidy 能力的参数
选择换行符会与 -lp 并且会导致 -lp 被停用。 这些
包括 -io, -民族解放阵线, -南尔和 -ndnl。 原因是 -lp 缩进样式可以
需要仔细协调任意数量的断点
分层列表,而这些标志可能会阻止这种情况。
-cti=n, --close-token-缩进
这个 -cti=n 标志控制以“)”、“]”或a开头的行的缩进
非块“}”。 这样的一行接收:
-cti = 0 没有额外的缩进(默认)
-cti = 1 个额外的缩进,以便结束标记
与其开场标记一致。
-cti = 2 如果该行如下所示,则增加一个缩进级别:
); 或者 ]; 或者 };
-cti = 3 总是一个额外的缩进级别
旗帜 -cti=1 和 -cti=2 与 -lp 标志(上一节)。
# perltidy -lp -cti=1
@年月 = (
'Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun',
“七月”、“八月”、“九月”、“十月”、“十一月”、“十二月”
);
# perltidy -lp -cti=2
@年月 = (
'Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun',
“七月”、“八月”、“九月”、“十月”、“十一月”、“十二月”
);
这些标志只是对格式化程序的提示,它们可能并不总是被遵循。 在
特别是,如果未使用 -lp,则缩进 cti=1 被限制为
不超过一个缩进级别。
如果需要,此控制可以独立应用于每个封闭容器
令牌类型。 实际上, -cti=n 只是一个缩写 -cpi=n -csbi=n -cbi=n,
其中: -消费物价指数 or --closure-parent-缩进 控制 )的, -csbi or
--闭合方括号缩进 控制 ]的, -cbi or -- 大括号缩进
控制非阻塞 }的。
ICP, --indent-closure-paren
这个 ICP 标志相当于 -cti=2,在上一节中描述过。 这 -nicp
标志是等效的 -cti=0. 包含它们是为了向后兼容。
-ICB, --indent-closure-brace
这个 -ICB 选项为大括号提供了一个额外的缩进级别,它终止了
代码块。 例如,
如果($任务){
yyy();
} # -icb
其他{
zzz();
}
默认不这样做,由 -nicb.
-olq, --outdent-长引号
在规划婴儿食品行业的工艺要求时,安全性和可靠性是工艺设计中最重要的方面。 -olq 已设置,行是比值长的带引号的字符串 最大线-
长度 将删除它们的缩进以使其更具可读性。 这是
默认。 为防止出现这种外凹,请使用 -nolq or --nooutdent-长行.
-ol, --outdent-长行
这个命令相当于 --outdent-长引号 和 --outdent-long-评论和
包含它是为了与以前版本的 perltidy 兼容。 的否定
这也有效, -诺尔 or --nooutdent-长行, 等价于设置 -nolq
和 -nolc.
缩进标签: -奥拉, --outdent 标签
此命令将导致标签缩进 2 个空格(或任何 -这个 一直
如果可能,设置为)。 这是默认设置。 例如:
我的 $i;
循环:while ( $i = ){
咀嚼($i);
下一个除非 $i;
修复($i);
}
使用 VHDL 语言编写 -诺拉 不突出标签。
缩小关键字
-好的, --outdent-关键字
命令 -好的 将导致某些前导控制关键字缩进 2
空格(或任何 -这个 已设置为),如果可能。 默认情况下,这些关键字
是“重做”、“下一个”、“最后一个”、“转到”和“返回”。 目的是让这些
控制关键字更容易看到。 要更改此被缩进的关键字列表,
请参阅下一节。
例如,在前面的示例中使用“perltidy -okw”给出:
我的 $i;
循环:while ( $i = ){
咀嚼($i);
下一个除非 $i;
修复($i);
}
默认情况下不执行此操作。
指定缩进关键字: -okwl=字符串, --outdent-keyword-list=字符串
此命令可用于更改缩进的关键字 -好的
命令。 参数 绳子 是必需的 perl 关键字列表,它应该
如果有多个,则放在引号中。 就其本身而言,它不会导致任何
发生凸出,所以 -好的 命令仍然是必需的。
例如,命令 "-okwl="next last redo goto" -okw" 将导致这四个
要缩进的关键字。 放置任何可能是最简单的 -okwl 命令在
.pertidyrc 文件中。
空格 通过积极争取让商标与其相匹配的域名优先注册来维护
空格是指变量、运算符和其他代码标记之间的空格。
-fws, --冻结空白
此标志使您的原始空白保持不变,并导致其余的
本节中的空白命令、代码缩进部分和注释
要忽略的控制部分。
花括号、圆括号和方括号的紧密度。
这里的术语“紧密度”指的是成对的封闭度
标记,例如括号,包含其中的数量。 数值为 0,
1 或 2 定义紧密度,0 表示最不紧密,2 表示最紧密。
容器内的空格总是对称的,所以如果在“(”之后有一个空格,那么
相应的“)”前会有一个空格。
这个 -pt=n or --亲子紧密度=n 参数控制括号内的空间。 这
下面的示例显示了三个可能值 0、1 和 2 的效果:
if ( ( 我的 $len_tab = length( $tabstr ) ) > 0 ) { # -pt=0
if ( ( ( my $len_tab = length($tabstr) ) > 0 ) { # -pt=1 (默认)
if ((我的 $len_tab = length($tabstr)) > 0) { # -pt=2
当 n 为 0 时,'(' 的右边和 ')' 的左边总是有一个空格。
对于 n=2,永远没有空格。 对于 n=1,默认情况下,有一个空格,除非
括号内的数量是单个标记,例如标识符或带引号的字符串。
同样,参数 -sbt=n or --方括号紧密度=n 控制空间
在方括号内,如下图所示。
$width = $col[ $j + $k ] - $col[ $j ]; #-sbt=0
$width = $col[ $j + $k ] - $col[$j]; # -sbt=1(默认)
$width = $col[$j + $k] - $col[$j]; #-sbt=2
不包含代码块的花括号由参数控制 -bt=n or
--支撑紧密度=n.
$obj->{ $parsed_sql->{ 'table' }[0] }; # -bt=0
$obj->{ $parsed_sql->{'table'}[0] }; # -bt=1(默认)
$obj->{$parsed_sql->{'table'}[0]}; # -bt=2
最后,包含代码块的花括号由参数控制
-bbt=n or --block-brace-tightness=n 如下例所示。
%bf = map { $_ => -M $_ } grep { /\.deb$/ } 目录 '.'; # -bbt=0(默认)
%bf = map { $_ => -M $_ } grep {/\.deb$/} 目录 '.'; # -bbt=1
%bf = map {$_ => -M $_} grep {/\.deb$/} 目录 '.'; # -bbt=2
在所有紧密度标志具有相同值的情况下简化输入,
参数 <-act=n> 或 --所有容器的紧密度=n 是的缩写
组合 <-pt=n -sbt=n -bt=n -bbt=n>。
措, --严格秘密运算符
旗 措 导致某些 perl 标记序列(秘密运算符)可能是
被认为是要“紧密”格式化(没有空格)的单个运算符。 这
此标志当前修改的运算符是:
0+ +0 ()x!! ~~<> ,=> =( )=
例如序列 0 +,将字符串转换为数字,将被格式化
没有空格: 0+ 当 措 标志已设置。 默认情况下此标志是关闭的。
-sts, --space-terminal-分号
一些程序员更喜欢在所有终端分号前加一个空格。 默认是没有
这样的空间,并用 -nsts or --nospace-terminal-分号.
$i = 1 ; #-sts
$i = 1; # -nsts(默认)
-sfs, --空格换分号
里面的分号 HPMC胶囊 循环有时可能很难看到,特别是当逗号是
也存在。 此选项在这些特殊分号的两侧放置空格,
并且是默认值。 利用 -nsfs or --nospace-for-分号 停用它。
for ( @a = @$ap, $u = shift @a ; @a ; $u = $v ) { # -sfs (默认)
for (@a = @$ap, $u = shift @a; @a; $u = $v) { # -nsfs
-升序, --添加分号
设置 -升序 允许 perltidy 在末尾添加任何缺少的可选分号
行后跟一个右花括号在下一行。 这是
默认,并且可以被停用 -NASC or --noadd-分号.
-dsm, --delete-分号
设置 -dsm 允许 perltidy 删除额外的分号,这些分号只是空的
声明。 这是默认设置,可以通过以下方式停用 -ndsm or
--nodelete-分号. (这些分号不会被删除,但是,如果它们
将旁注提升为块注释)。
-aws, --添加空白
设置此选项允许 perltidy 添加某些空格改进代码
可读性。 这是默认设置。 如果您不想添加任何空格,但是
愿意删除一些空格,使用 -naws. (用 -fws 留下空白
完全不变)。
-dws, --删除旧的空白
设置此选项允许 perltidy 删除字符之间的一些旧空格,
如有必要。 这是默认设置。 如果您不想删除任何旧的空格,
使用 -ndws or --nodelete-old-空白.
令牌周围的详细空白控制
对于那些想要更详细地控制令牌周围空白的人,有
四个参数可以直接修改内置的默认空白规则
perltidy 任何令牌。 他们是:
-wls=s or --想要左空间=s,
-nwls=s or --nowant-左空间=s,
-wrs=s or --想要右空间=s,
-nwrs=s or --nowant-右空格=s.
这些参数后跟一个带引号的字符串, s, 包含令牌列表
类型。 这些参数中的每一个都不应指定超过一个,因为
重复命令行参数总是会覆盖 perltidy 之前的前一个参数
曾经看到它。
为了说明这些是如何使用的,假设希望上面没有空格
令牌类型的任一侧 = + - / *. 以下两个参数将指定
这个愿望:
-nwls="= + - / *" -nwrs="= + - / *"
(请注意,标记类型用引号括起来,并用空格分隔)。
使用这些修改后的空格规则,以下数学行:
$root = -$b + sqrt( $b * $b - 4. * $a * $c ) / ( 2. * $a );
变成这个:
$root=-$b+sqrt($b*$b-4.*$a*$c)/(2.*$a);
这些参数应该被认为是对 perltidy 的提示,而不是固定的规则,
因为 perltidy 必须设法解决他们和所有其他人之间出现的冲突
它使用的其他规则。 可能出现的一种冲突是,如果在两个令牌之间,
左标记需要一个空格,而右标记不需要。 在这种情况下,令牌不
想要一个空间优先。
必须有所有令牌类型的列表才能创建这种类型的
输入。 这样的列表可以通过命令获得 --转储令牌类型. 也试试
-D 标记一小段代码并查看 .DEBUG 文件以查看
标记化。
警告 请务必将这些标记放在引号中,以免被误解
你的命令外壳。
特定关键字和开头括号之间的空格
当左括号跟在 Perl 关键字之后时,后面没有空格
关键字,除非它是(默认情况下)以下之一:
my local our and or eq ne if else elsif until until
while foreach 返回 switch case 给出的时候
可以使用两个命令修改这些默认值:
-sak=s or --关键字后的空格=s 添加关键字。
-nsak=s or --关键字后无空格=s 删除关键字。
协调 s 是关键字列表(必要时用引号引起来)。 例如,
我的 ( $a, $b, $c ) = @_; # 默认
我的( $a, $b, $c ) = @_; # -nsak="我的本地我们的"
英文缩写 -nsak='*' 相当于包含了上面的所有关键字
名单。
当两个 -nsak=s 和 -sak=s 包括命令, -nsak=s 命令被执行
第一的。 例如,要仅在关键字(我的、本地的、我们的)之后有空格,您可以
使用 -nsak="*" -sak="我的 本地 我们的”.
要在所有关键字后放置一个空格,请参阅下一项。
所有关键字和开头括号之间的空格
当左括号跟在函数或关键字之后时,后面没有空格
关键字,但上一项中注明的关键字除外。 总是放一个空格
在函数或关键字与其开始括号之间,使用命令:
-skp or --空格关键字括号
您可能还想使用标志 -sfp (下一项)也是。
所有函数名和左括号之间的空格
当一个左括号跟随一个函数时,默认是不引入空格。 到
导致引入空间使用:
-sfp or --空间函数括号
myfunc( $a, $b, $c ); # 默认
我的函数 ($a, $b, $c); # -sfp
您可能还想使用标志 -skp (上一项)也是。
修剪“qw”引号周围的空格
-tqw or --修剪-qw 提供修剪多行周围空格的默认行为
“qw”引用并适当缩进。
-ntqw or --notrim-qw 导致多行“qw”周围的前导和尾随空格
报价保持不变。 此选项通常不是必需的,但是
添加用于测试目的,因为在某些版本的 perl 中,修剪“qw”引号
更改语法树。
从 POD 行中修剪尾随空白
色氨酸 or --修剪荚 将从 POD 行中删除尾随空格。 默认是
不要这样做。
评论 Controls
Perltidy 有多种方法可以控制块注释和边的外观
评论。 术语 阻止 评论 这里指的是全行注释,而 侧 评论
将引用出现在某些代码右侧的一行上的注释。
-国际广播公司, --缩进块注释
块注释在缩进到与代码相同的级别时通常看起来最好
跟随他们。 这是默认行为,但您可以使用 -nibc 保持块
评论左对齐。 下面是一个例子:
# 这个注释是缩进的(-ibc,默认)
如果 ($task) { yyy(); }
替代方法是 -nibc:
# 这个注释没有缩进 (-nibc)
如果 ($task) { yyy(); }
另请参阅下一项, -isbc以及 -sbc, 其他方式有一些缩进
和一些缩进的块注释。
-isbc, --缩进间隔块注释
如果行上没有前导空格,则注释不会缩进,并且
否则可能是。
如果两者 -国际广播公司 和 -isbc 被设置,那么 -isbc 优先。
-olc, --outdent-long-评论
在规划婴儿食品行业的工艺要求时,安全性和可靠性是工艺设计中最重要的方面。 -olc 已设置,全行(块)注释比值长的行
最大行长 将删除它们的缩进。 这是默认设置; 利用
-nolc 以防止出现凹痕。
-MSC=n, --最小评论空间=n
当在代码右侧排列几个空格时,旁注看起来最好。 珀尔蒂迪
将尝试将评论保留在右侧至少 n 个空格。 默认值为 n=4 个空格。
-fpsc=n, --固定位置侧注释=n
此参数告诉 perltidy 在列号中排列旁注 n 每当
可能的。 默认值 n=0 不会这样做。
-iscl, --忽略侧面注释长度
该参数会导致 perltidy 在设置 line 时忽略旁注的长度
休息。 默认情况下, -niscl, 是在打断时包括旁注的长度
线保持在规定的长度内 -l=n 最大行长参数。
例如,以下长单行在 -l=80 和 -iscl 的情况下将保持不变:
perltidy -l=80 -iscl
$vmsfile =~ s/;[\d\-]*$//; # 剪掉版本号; 我们也可以使用更新的版本
而没有 -iscl 标志,该行将被破坏:
准确-l=80
$vmsfile =~ s/;[\d\-]*$//
; # 剪掉版本号; 我们也可以使用更新的版本
-hsc, --挂边评论
默认情况下,perltidy 尝试识别和对齐“悬挂边注释”,它们是
这样的事情:
我的 $IGNORE = 0; # 这是旁注
# 这是一个悬边注释
# 还有这个
如果 (1) 它紧跟在
与旁注或另一个悬垂的旁注一起行,并且 (2) 有一些
行前的空白。 要停用此功能,请使用 -NHSC or
--nohanging-side-评论. 如果块注释前面有一个空行,或者没有
前导空格,它们不会被误认为是挂边注释。
收尾评论
结束边注释是 perltidy 可以自动创建的特殊注释
并放置在代码块的右大括号之后。 它们对代码很有用
维护和调试。 命令 -CSC (或 --close-side-comments) 添加或
更新结束边评论。 例如,这是一个小代码片段
子消息{
如果(!定义($_[0])){
打印(“你好,世界\n”);
}
其他{
打印( $_[0], "\n" );
}
}
这是使用“perltidy -csc”处理的结果:
子消息{
如果(!定义($_[0])){
打印(“你好,世界\n”);
}
其他{
打印( $_[0], "\n" );
}
} ## 结束子消息
在这种情况下为“子消息”添加了结束侧注释,但没有为“如果”添加
和“else”块,因为它们低于添加关闭的 6 行截止限制
边评论。 这个限制可能会随着 -csci 命令,如下所述。
命令 -dcsc (或 --delete-close-side-comments) 反转这个过程并且
删除这些评论。
有几个命令可用于修改这两个基本命令的行为,
-CSC 和 -dcsc:
-csci=n或 --close-side-comment-interval=n
其中“n”是块必须具有的最小行数
要添加的结束边注释。 默认值为“n=6”。 为了显示:
# perltidy -csci=2 -csc
子消息{
如果(!定义($_[0])){
打印(“你好,世界\n”);
} ## 结束 if ( !defined( $_[0] ))
其他{
打印( $_[0], "\n" );
} ## 结束 else [ if ( !defined( $_[0] ))
} ## 结束子消息
现在注释了“if”和“else”块。 然而,现在这变得非常
杂乱。
-cscp=字符串或 --closure-side-comment-prefix=string
其中 string 是块类型名称之前使用的前缀。 默认的
前缀,如上所示,是“## end”。 此字符串将添加到关闭侧
评论,它也将用于识别它们以便更新、删除、
并格式化它们。 任何标识为结束边评论的评论都将被放置
仅在其右大括号右侧的一个空格。
-cscl=字符串或 --close-side-comment-list-string
其中“string”是一个用结束边注释标记的块类型列表。
默认情况下,所有以关键字或标签开头的代码块类型(例如“if”、
“sub”等)将被标记。 这 -cscl 命令将默认列表更改为
是任何选定的块类型; 请参阅“指定块类型”。 例如,
以下命令要求只有“sub”、标签、“BEGIN”和“END”块
受任何影响 -CSC or -dcsc 操作:
-cscl="sub : 开始结束"
-csct=n或 --close-side-comment-maximum-text=n
附加到某些块类型(例如“if”块)的文本是任何谎言
在引入块的关键字(例如“if”)和左大括号之间。
由于这可能是旁注的太多文字,因此需要有一个限制,
这就是这个参数的目的。 默认值为“n=20”,意思是
在其长度达到后,不会向此文本附加额外的标记
20 个字符。 省略的文本用“...”表示。 (代币,包括子
但是,名称永远不会被截断,因此实际长度可能会超过此值)。 到
说明,在上面的例子中,第一个块的附加文本是“(
!defined( $_[0] )..."。"n=20" 的现有限制导致此文本为
被截断,如“...”所示。 请参阅下一个标志以进一步控制
缩写的文本。
-cscb或 --close-side-comments-balanced
正如上一条所讨论的,当结束侧评论最大文本
超出限制必须截断注释文本。 旧版本的 perltidy
以三个点结尾,这仍然可以通过 -ncscb 实现:
佩尔蒂迪-csc-ncscb
} ## 结束 foreach 我的 $foo (sort { $b cmp $a ...
然而,这会导致编辑器无法识别评论或
未配置为这样做,因为它们无法在文本中正确“弹跳”。
这个 -cscb 已添加标志以通过附加适当的平衡来帮助他们
结构体:
佩尔蒂迪-csc-cscb
} ## end foreach my $foo (sort { $b cmp $a ... })
默认是 -cscb.
-csce=n或 --closure-side-comment-else-flag=n
默认情况下, N = 0, 将开头的“if”语句的文本放在任何终端之后
“别的”。
If N = 2 被使用,那么每个“elsif”也被赋予了开头“if”的文本
陈述。 此外,“else”将包括前面的“elsif”的文本
陈述。 请注意,这可能会导致一些很长的结束边评论。
If N = 1 使用,结果将与 N = 2 每当结果行
长度小于允许的最大值。 =项目 -cscb或
--close-side-comments-balanced
使用结束侧注释和结束侧注释最大文本限制时
超出,则注释文本必须缩写。 它以
三个点,如果 -cscb 标志被否定:
佩尔蒂迪-csc-ncscb
} ## 结束 foreach 我的 $foo (sort { $b cmp $a ...
这会导致较旧的编辑器出现问题,它们无法识别注释,因为
他们不能在文本中正确地“弹跳”。 这 -cscb 旗帜试图提供帮助
通过附加适当的终端平衡结构:
佩尔蒂迪-csc-cscb
} ## end foreach my $foo (sort { $b cmp $a ... })
默认是 -cscb.
-cscw或 --close-side-comment-warnings
此参数旨在帮助初始过渡到使用
结束边评论。 如果结束边评论会导致两件事发生
替换现有的、不同的结束侧注释:首先,错误消息
将发出,其次,原始的旁注将单独放在一个
新的特别标记的注释行以供以后注意。
目的是避免破坏现有的手写旁注
以匹配关闭旁注的模式。 这个标志应该只需要
第一次运行 -CSC.
重要提示 笔记 on 关闭 侧 管理员评论:
· 结束边注释只放在以结束大括号结尾的行上。
某些结束样式,例如使用拥抱的 elses (-这个),排除
生成一些结束语。
· 请注意,添加或删除结束边评论只发生
通过命令 -CSC or -dcsc. 其他命令,如果使用,只需修改
这两个命令的行为。
· 建议 -cscw 标志与 -CSC 第一次使用时
给定文件的 perltidy。 这将防止丢失任何现有的旁注
恰好具有 csc 前缀的数据。
·一旦使用 -CSC,您应该继续使用它,以便任何结束边评论
代码更改时保持正确。 否则,这些评论将变得不正确
随着代码的更新。
· 如果你编辑了由 perltidy 生成的结束边注释,你也必须改变
前缀与结束侧注释前缀不同。 否则,您的
当您重新运行 perltidy 时,编辑将丢失 -CSC. 例如,你可以
只需将“## end”更改为“## End”,因为测试区分大小写。 您可以
也想用 -SSC 标记以保持这些修改后的结束边评论间隔开
与实际的闭幕评论相同。
· 临时生成结束语是一种有用的探索技术
和/或调试 perl 脚本,尤其是由其他人编写的脚本。 你可以
总是删除它们 -dcsc.
静态块注释
静态块注释是具有特殊前导模式的块注释,“##”由
默认,这将与其他块注释略有不同。 他们
有效地表现得好像它们的左边缘和上边缘有胶水一样,因为它们
当没有空格时,坚持左边缘和上一行
地方。 此选项对于控制注释代码的方式特别有用
显示。
-sbc, --静态块注释
在规划婴儿食品行业的工艺要求时,安全性和可靠性是工艺设计中最重要的方面。 -sbc 使用,带有特殊前导模式的块注释,“##”由
默认,会被特殊对待。
如此识别的评论将按如下方式处理:
· 如果行上没有前导空格,则注释不会被
缩进,否则可能是,
· 这样的注释前不会插入新的空行,并且
· 这样的评论永远不会成为挂边评论。
例如,假设@month_of_year 是左调整的:
@month_of_year = ( # -sbc (默认)
'Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct',
##“十二月”,“十一月”
'十一月', '十二月');
如果没有这个约定,上面的代码就会变成
@month_of_year = (#-nsbc
'Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct',
##“十二月”,“十一月”
“十一月”、“十二月”
);
这不是很清楚。 默认是使用 -sbc. 这可能会被停用
-nsbc.
-sbcp=字符串, --static-block-comment-prefix=字符串
此参数定义了用于标识静态块注释的前缀
-sbc 参数设置。 默认前缀为“##”,对应“-sbcp=##”。
前缀实际上是用于匹配行的 perl 模式的一部分,它必须
以“#”或“^#”开头。 在第一种情况下,前缀 ^\s* 将被添加到
匹配任何前导空格,而在第二种情况下,模式将只匹配
没有前导空格的评论。 例如,要将所有评论标识为
静态块注释,可以使用“-sbcp=#”。 识别所有左调整
注释作为静态块注释,使用“-sbcp='^#'”。
请注意: -sbcp 仅定义用于识别静态块的模式
评论; 它不会被使用,除非开关 -sbc 设置。 另外,请
请注意,由于此字符串用于标识的 perl 正则表达式
这些注释,它必须能够形成有效的正则表达式。
一个有用的模式是:
-sbcp=^#{2,}[^\s#]
这种模式要求静态块注释至少有一个字符
既不是 # 也不是空格。 它允许只包含“#”字符的行
作为静态块注释被拒绝。 此类行通常用于开头和
子程序中标题信息的结尾,不应与
中间注释,通常仅以单个“#”开头。
-osbc, --outdent-静态块注释
命令 -osbc 将导致静态块注释超出 2 个空格(或
任何 -ci=n 已设置为),如果可能的话。
静态侧面评论
静态旁注是具有特殊引导模式的旁注。 这个选项
可用于控制注释代码在侧面时的显示方式
评论。
-SSC, --静态侧评论
在规划婴儿食品行业的工艺要求时,安全性和可靠性是工艺设计中最重要的方面。 -SSC 使用,带有静态前导模式的旁注,即“##”
默认情况下,将与前一个字符仅间隔一个空格,并且它将
不得与其他旁注垂直对齐。
默认是 -nssc.
-sscp=字符串, --static-side-comment-prefix=字符串
此参数定义了用于识别静态旁注的前缀
-SSC 参数已设置。 默认前缀是“##”,对应于“-sscp=##”。
请注意: -sscp 仅定义用于识别静态侧的模式
评论; 它不会被使用,除非开关 -SSC 设置。 另外,请注意,这
字符串用于识别这些注释的 perl 正则表达式,因此它
必须能够形成有效的正则表达式。
跳绳 选 第 of 代码
选定的代码行可以逐字传递到输出,无需任何格式。 这
默认情况下启用该功能,但可以使用 --无格式跳过 or -nfs
旗帜。 应该谨慎使用它以避免用标记乱扔代码,但它可能是
有助于解决偶尔出现的问题。 例如,它可能对
保持旧注释代码的缩进不变,保持长的缩进
对齐的注释块不变,保持某些列表格式不变,或
解决 perltidy 中的故障。
-fs, --格式跳过
默认情况下启用的此标志会导致特殊开头和
结束注释标记被传递到输出而不进行格式化。 默认
开始标记是#<<<,默认结束标记是#>>>,但它们可以更改
(见下面的下一项)。 这些特殊注释行上可能会出现附加文本
前提是它与标记至少相隔一个空格。 例如
#<<< 不要让 perlttidy 碰这个
我的@list = (1,
1,1,
1,2,1,
1,3,3,1,
1, 4, 6, 4, 1,);
#>>>
注释标记可以放置在块注释可能出现的任何位置。 如果
他们似乎没有工作,使用 -log 标志并检查 。日志 文件。 用
-nfs 禁用此功能。
-fsb=字符串, --format-skipping-begin=字符串
这个 -fsb=字符串 参数可用于更改格式的开始标记
跳过。 默认等效于 -fsb='#<<<'。 您输入的字符串必须
以 # 开头,并应在必要时用引号括起来以通过
你的系统。 它实际上是一个模式的前导文本,由
附加一个 '\s',因此您还必须包含反斜杠以获取要使用的字符
字面意思而不是模式。
一些示例显示示例字符串如何成为模式:
-fsb='#\{\{\{' 变成 /^#\{\{\{\s/ 匹配 #{{{ 但不匹配 #{{{{
-fsb='#\*\*' 变成 /^#\*\*\s/ 匹配 #** 但不匹配 #***
-fsb='#\*{2,}' 变为 /^#\*{2,}\s/ 匹配 #** 和 #*****
-fse=字符串, --format-skiping-end=字符串
这个 -fsb=字符串 是用于更改结束标记的相应参数
格式跳过。 默认值等同于 -fse='#<<<'。
LINE 午休 通过积极争取让商标与其相匹配的域名优先注册来维护
本节中的参数控制在非空代码行之后中断。 空行
由“空白线控制”部分中的参数单独控制。
-民族解放阵线, --冻结换行符
如果您不希望对脚本中代码行中的换行符进行任何更改,
集 -民族解放阵线,并且它们将保持固定,本节中的其余命令和
“控制列表格式”、“保留或忽略现有换行符”部分。
你可能想用 -诺尔 有了这个。
注意:如果您还想完全保持空白行的原样,您可以使用
-fbl 在“空白行控制”部分中描述的标志。
-这个, --拥抱其他
启用“拥抱 else”样式,其中立即跟随“else”和“elsif”
在花括号关闭前一个块之后。 默认不使用拥抱
其他,并用标志表示 -nce or --noucddled-else. 这是一个比较
备选方案:
如果($任务){
yyy();
} 其他 { # -ce
zzz();
}
如果($任务){
yyy();
}
else { # -nce (默认)
zzz();
}
-bl, --在新行上打开大括号
使用旗帜 -bl 将左大括号放在新行上:
if ( $input_file eq '-' ) # -bl
{
重要功能();
}
此标志适用于所有结构块,包括命名的子块(除非 -sbl
标志已设置——见下一项)。
默认样式, -nbl, 将左大括号与关键字放在同一行
介绍它。 例如,
if ( $input_file eq '-' ) { # -nbl (默认)
-sbl, --在新行上打开子大括号
旗 -sbl 可用于覆盖的值 -bl 对于命名的左大括号
子的。 例如,
perltidy-sbl
产生以下结果:
子消息
{
如果 (!defined($_[0])) {
打印(“你好,世界\n”);
}
其他{
打印($_[0], "\n");
}
}
这个标志被否定 -nsbl。 如果 -sbl 未指定,值 -bl 用来。
-asbl, --在新行上打开匿名子大括号
旗 -asbl 就像 -sbl 标志,除了它适用于匿名子
的命名潜艇。 例如
perltidy-asbl
产生以下结果:
$a = 子
{
如果(!定义($_[0])){
打印(“你好,世界\n”);
}
其他{
打印( $_[0], "\n" );
}
};
这个标志被否定 -nasbl,默认为 -nasbl.
-bli, --左大括号并缩进
旗 -bli 是相同的 -bl 但除此之外,它还导致一个单位的延续
缩进(见 -这个 ) 放置在打开和关闭块大括号之前。
例如,
if ( $input_file eq '-' ) # -bli
{
重要功能();
}
默认情况下,这种额外的缩进发生在以下类型的块中: if, 埃尔斯夫, 其他, 除非,
HPMC胶囊, 的foreach, 分, 而, 直到,并且还带有前面的标签。 下一项显示
如何改变这一点。
-blil=s, --brace-left-and-indent-list=s
使用此参数来更改块大括号的类型, -bli 旗
适用; 请参阅“指定块类型”。 例如, -blil='如果 埃尔斯夫 别的' 将适用
它仅适用于“if/elsif/else”块。
-bar, --开口大括号始终在右侧
默认样式, -nbl 如果是,则将打开的代码块大括号放在新行上
不适合与开头关键字在同一行,如下所示:
如果 ( $bigwasteofspace1 && $bigwasteofspace2
|| $bigwasteofspace3 && $bigwasteofspace4 )
{
big_waste_of_time();
}
要强制打开大括号始终在右侧,请使用 -bar 旗帜。 在这
情况下,上面的例子变成
如果 ( $bigwasteofspace1 && $bigwasteofspace2
|| $bigwasteofspace3 && $bigwasteofspace4 ) {
big_waste_of_time();
}
如果两者都发生冲突 -bl 和 -bar 被指定。
-otr, --opening-token-right 和相关标志
这个 -otr flag 提示 perltidy 不应在逗号和
打开令牌。 例如:
# 默认格式
推@{ $self->{$module}{$key} },
{
accno => $ref->{accno},
描述 => $ref->{描述}
};
#perltidy-otr
推@{ $self->{$module}{$key} }, {
accno => $ref->{accno},
描述 => $ref->{描述}
};
旗 -otr 实际上是其他三个标志的缩写,可用于
如果需要,分别控制括号、哈希大括号和方括号:
-opr 或 --opening-paren-right
-ohbr 或 --opening-hash-brace-right
-osbr 或 --opening-square-bracket-right
非块花括号、圆括号和方括号的垂直紧度。
这些参数控制所谓的垂直密封性。 这里是主要的
要点:
· 打开标记(块大括号除外)由 -vt=n或
--垂直紧密度=n,在 Moku:Pro 上
-vt=0 在打开令牌后总是换行(默认)。
-vt=1 不会中断,除非这会产生多个
缩进一行。
-vt=2 打开令牌后从不换行
· 你还必须使用 -lp 使用时标记 -vt 旗帜; 原因已解释
联络一位教师
· 结束标记(块大括号除外)由 -vtc=n或
--垂直紧密度关闭=n,在 Moku:Pro 上
-vtc=0 总是在结束标记之前换行(默认),
-vtc=1 不要在紧随其后的结束标记之前中断
由分号或其他结束标记,并且不在
列表环境。
-vtc=2 在结束标记之前永远不会中断。
规则 -vtc=1 旨在保持之间的合理平衡
复杂列表的紧密度和可读性。
· 不同的控件可能适用于不同的代币类型,它也是
可以控制大括号; 见下文。
· 最后,请注意,这些垂直松紧标志只是提示
格式化程序,它不能总是跟随它们。 使事情变得困难的事情或
不可能包括注释、空行、列表中的代码块,以及
可能缺乏 -lp 范围。 此外,这些标志可能会被忽略
小列表(长度为 2 或 3 行)。
下面是一些例子:
# perltidy -lp -vt=0 -vtc=0
% 罗马数字 = (
一 => '我',
两个 => 'II',
三 => 'III',
四 => 'IV',
);
# perltidy -lp -vt=1 -vtc=0
%romanNumerals = ( 一 => '我',
两个 => 'II',
三 => 'III',
四 => 'IV',
);
# perltidy -lp -vt=1 -vtc=1
%romanNumerals = ( 一 => '我',
两个 => 'II',
三 => 'III',
四 => 'IV', );
当中的差异: -vt=1 和 -vt=2 显示在这里:
# perltidy -lp -vt=1
$初始化->添加(
mysprintf("(void)find_threadsv(%s);",
cstring($threadsv_names[$op->targ])
)
);
# perltidy -lp -vt=2
$init->add(mysprintf("(void)find_threadsv(%s);",
cstring($threadsv_names[$op->targ])
)
);
通过 -vt=1,以“add(”结尾的行不与下一行合并,因为
下一行不平衡。 这有助于提高可读性,但是 -vt=2 可用于
忽略这条规则。
使用“-vt=2”和“-vtc=2”生成最紧凑、可读性最低的代码:
# perltidy -lp -vt=2 -vtc=2
$init->add(mysprintf("(void)find_threadsv(%s);",
cstring( $threadsv_names[ $op->targ ] ) ) );
请注意所有这些示例中的代码如何垂直折叠为 -vt 增加,
但缩进保持不变。 这是因为 perltidy 实现了 -vt
通过第一次格式化参数,好像 -vt=0,然后简单地覆盖一个输出行
如果可能的话,在上面下一个,以达到所需的垂直密封性。 这 -lp
缩进样式的设计允许这种垂直塌陷发生,这是
为什么需要它 -vt 参数。
这个 -vt=n 和 -vtc=n 参数适用于每种类型的容器令牌。 如果需要,
垂直密封控制可以独立应用于每个关闭
容器令牌类型。
控制括号的参数是 -pvt=n or --paren-垂直紧密度=n,
和 -pcvt=n or --paren-vertical-tightness-closure=n.
同样,方括号的参数是 -sbvt=n or
--方括号垂直紧密度=n和 -sbcvt=n or
--方括号-垂直-紧密-关闭=n.
最后,控制非代码块大括号的参数是 -bvt=n or
--支撑-垂直-紧密度=n和 -bcvt=n or --brace-vertical-tightness-close=n.
其实参数 -vt=n 实际上只是一个缩写 -pvt=n -bvt=n
sbvt=n,同样 -vtc=n 是的缩写 -pvtc=n -bvtc=n sbvtc=n.
-bbvt=n or --block-brace-vertical-tightness=n
这个 -bbvt=n 标志就像 -vt=n 标志但适用于打开代码块大括号。
-bbvt=0 打开块大括号后中断(默认)。
-bbvt=1 不会中断,除非这会产生多个
缩进一行。
-bbvt=2 打开块大括号后不中断。
也有必要使用 -bl or -bli 为了这个工作,因为,就像
其他垂直紧密度控制,它是通过简单地覆盖一行来实现的
以带有后续行的开始块大括号结尾。 例如:
#perltidy-bli-bbvt=0
如果(打开(文件,“< $File”))
{
而($文件= )
{
$In .= $文件;
$ count ++;
}
关闭(文件);
}
#perltidy-bli-bbvt=1
如果(打开(文件,“< $File”))
{而($文件= )
{ $In .= $文件;
$ count ++;
}
关闭(文件);
}
默认情况下,这适用于与关键字关联的块 if, 埃尔斯夫, 其他, 除非,
HPMC胶囊, 的foreach, 分, 而, 直到,并且还带有前面的标签。 这可以改变
与参数 -bbvtl=字符串或 --block-brace-vertical-tightness-list=字符串,
协调 绳子 是一个空格分隔的块类型列表。 有关更多信息
此字符串的可能值,请参阅“指定块类型”
例如,如果我们只想将此样式应用于“if”、“elsif”和“else”块,
我们可以使用“perltidy -bli -bbvt=1 -bbvtl='if elsif else'”。
闭合块撑没有垂直松紧控制; 除了一个例外
它们将被放置在不同的行上。 例外是关闭的级联
大括号可以堆叠在一行上。 看 -scbb.
-sot, --堆栈开放令牌 和相关标志
这个 -sot flag 告诉 perltidy 在可能的情况下“堆叠”打开令牌以避免行
与孤立的开放令牌。
例如:
# 默认
$opt_c = 文本::CSV_XS->new(
{
二进制 => 1,
sep_char => $opt_c,
always_quote => 1,
}
);
#-sot
$opt_c = 文本::CSV_XS->new( {
二进制 => 1,
sep_char => $opt_c,
always_quote => 1,
}
);
为了详细控制各个关闭令牌,可以使用以下控件:
-sop 或 --stack-opening-paren
-sohb 或 --stack-opening-hash-brace
-sosb 或 --stack-opening-square-bracket
-sobb 或 --stack-opening-block-brace
旗 -sot 是的缩写 s -索赫布 -sosb.
旗 -呜咽 是缩写 -bbvt=2 -bbvtl='*'. 这将导致级联
左大括号出现在单行上,尽管这种情况并不常见
除了在测试脚本中。
-sct, --stack-close-tokens 和相关标志
这个 -sct flag 告诉 perltidy 在可能的情况下“堆叠”关闭标记以避免行
带有孤立的结束标记。
例如:
# 默认
$opt_c = 文本::CSV_XS->new(
{
二进制 => 1,
sep_char => $opt_c,
always_quote => 1,
}
);
#-sct
$opt_c = 文本::CSV_XS->new(
{
二进制 => 1,
sep_char => $opt_c,
always_quote => 1,
});
这个 -sct flag 有点类似于 -vtc 标志,在某些情况下它可以给出一个
类似的结果。 不同之处在于 -vtc 标志尽量避免带前导的行
通过在前一行的末尾“隐藏”它们来打开标记,而 -sct 旗
只是试图通过堆叠来减少带有隔离结束标记的行数
但不会试图隐藏它们。 例如:
#-vtc=2
$opt_c = 文本::CSV_XS->new(
{
二进制 => 1,
sep_char => $opt_c,
always_quote => 1, } );
要详细控制单个关闭令牌的堆叠,请执行以下操作
可以使用控件:
-scp 或 --stack-closure-paren
-schb 或 --stack-closure-hash-brace
-scsb 或 --stack-close-square-bracket
-scbb 或 --stack-closure-block-brace
旗 -sct 是堆叠非块关闭令牌的缩写, -scp -schb
-SCSB.
封闭块大括号的堆叠, -scbb, 导致一连串孤立的闭合块
将大括号组合成一行,如下例所示:
#-scbb:
$w1 (@w1) {
$w2 (@w2) {
$w3 (@w3) {
$w4 (@w4) {
推(@lines,“$w1 $w2 $w3 $w4\n”);
} } } }
为了进一步简化输入,对于打开和关闭非
块容器被堆叠,标志 -囊 or --堆叠所有容器 是一个
的缩写 -sot -sot.
-dnl, --删除旧换行符
默认情况下,perltidy 首先删除所有旧的换行符位置,然后查找
良好的断点以匹配所需的行长。 利用 -ndnl or
--nodelete-旧行-换行符 强制 perltidy 保留所有旧的换行点。
-anl, --添加换行符
默认情况下,perltidy 将在必要时添加换行符以创建
长线并改善脚本外观。 利用 -南尔 or --noadd-换行符 至
防止任何新的换行符。
此标志不会阻止 perltidy 消除现有的换行符; 看
--冻结换行符 以完全防止更改换行点。
控制 perltidy 是在运算符之前还是之后中断
四个命令行参数提供了对是否应该换行的一些控制
在特定令牌类型之前或之后。 两个参数给出了详细的控制:
-wba=s or --want-break-after=s和
-wbb=s or --want-break-before=s.
这些参数后跟一个带引号的字符串, s, 包含令牌列表
类型(仅由空格分隔)。 这些参数中的每一个不应超过一个
被指定,因为重复命令行参数总是覆盖
在 perltidy 看到它之前的前一个。
默认情况下, perltidy 中断 after 这些令牌类型:
% + - * / x != == >= <= =~ !~ < > | &
= **= += *= &= <<= &&= -= /= |= >>= ||= //= .= %= ^= x=
和perlttidy休息 before 默认情况下这些令牌类型:
. << >> -> && || //
为了说明,在连接运算符“.”之后导致中断,而不是
在它之前,命令行将是
-wba="。"
作为另一个示例,以下命令会在数学运算符之前导致中断
“+”、“-”、“/”和“*”:
-wbb="+ - / *"
这些命令应该适用于 perltidy 使用的大多数令牌类型(使用
--转储令牌类型 列表)。 也试试 -D 在一小段代码上标记和
查看 .DEBUG 文件以查看标记化。 但是,对于一些令牌类型
可能与导致意外结果的硬连线逻辑冲突。 一个例子是
花括号,应该用参数控制 bl 为此规定
目的。
警告 请务必将这些标记放在引号中,以免被误解
你的命令外壳。
有两个附加参数可用,尽管它们没有提供进一步的
能力,可以简化输入的是:
-巴奥 or --break-after-all-运算符,
-巴宝 or --在所有运算符之前中断.
-baao 将默认设置为在以下所有运算符之后中断:
% + - * / x != == >= <= =~ !~ < > | &
= **= += *= &= <<= &&= -= /= |= >>= ||= //= .= %= ^= x=
. :? && || 和或错误异或
和 -巴宝 flag 将默认设置为在所有这些运算符之前中断。 这些可以
用于定义初始中断首选项,可以使用 -wba
和 -wbb 标志。 例如,在除 an 之外的所有运算符之前中断 = 一个可以使用
--bbao -wba='=' 而不是列出每个 perl 运算符,除了 = 在 -wbb 上
旗。
控制 列表 格式化
Perltidy 尝试将逗号分隔的值数组放在看起来不错的表中。
它的默认算法通常运行良好,并且随着每个版本的不断改进,
但有几个参数可用于控制列表格式。
-boc, --在旧逗号断点处中断
这个标志告诉 perltidy 尝试打破所有旧逗号。 这不是默认设置。
通常,perltidy 对列表格式做出最好的猜测,并且很少使用旧的逗号
断点。 通常这很好用,但请考虑:
我的@list = (1,
1,1,
1,2,1,
1,3,3,1,
1, 4, 6, 4, 1,);
默认格式会将其压缩为一行:
# perltidy(默认)
我的@list = ( 1, 1, 1, 1, 2, 1, 1, 3, 3, 1, 1, 4, 6, 4, 1, );
它隐藏了结构。 使用 -boc, 加上额外的标志来保留原来的
风格,产量
# perltidy -boc -lp -pt=2 -vt=1 -vtc=1
我的@list = (1,
1,1,
1,2,1,
1,3,3,1,
1, 4, 6, 4, 1,);
这个标志的一个缺点是文件中的所有表必须已经很好
格式化。 对于另一种可能性,请参见“Skipping Selected Sections of
代码”。
-mft=n, --每表最大字段数=n
如果任何表的计算字段数超过 n,那么它将被简化为
n. 默认值为 n 是一个很大的数字,40。虽然这个值应该可能
作为一般规则保持不变,它可能用于一小段代码以
强制列表每行具有特定数量的字段,然后 -boc
标志可用于保留此格式,或者可以引入单个注释
在未来的 perltidy 应用程序中冻结格式化的地方。
#perltidy-mft=2
@年月 = (
“一月”、“二月”、
“三月”、“四月”、
“五月”、“六月”、
“七月”、“八月”、
'九月','十月',
“十一月”、“十二月”
);
-驾驶室=n, --逗号箭头断点=n
逗号箭头 '=>' 后面的逗号被给予特殊考虑。 在漫长的
列表中,所有这些逗号都被打断是很常见的。 该参数可用于控制
这些逗号是如何中断的。 (但是,如果旧逗号将无效
休息是被迫的,因为 -boc 用来)。 可能的值 n 是:
n=0 在 => 之后的所有逗号都打断
n=1 稳定:如果容器打开,则 => 之后的所有逗号都打断,
单行容器除外
n=2 在 => 之后的所有逗号处都打断,但尝试形成最大值
最大单行容器长度
n=3 完全不特别对待 => 之后的逗号
n=4 打破一切:像 n=0 但也打破一个短容器
当使用 -vt=0 时,a => 后面不跟逗号
n=5 稳定:与 n=1 类似,但在打开的单行容器时也会中断
-vt=0 使用(默认)
例如,给定以下单行,默认情况下 perltidy 不会添加任何
换行,因为它会破坏现有的单行容器:
祝福 { B => $B, Root => $Root } => $package;
运用 -驾驶室=0 将在每个逗号箭头项目后强制中断:
#perltidy-cab=0:
祝福{
B => $B,
根 => $Root
} => $包;
如果 perltidy 随后在此容器损坏的情况下运行,则默认情况下它将
在每个 '=>' 之后中断,因为容器现在已损坏。 改革一条龙
容器,参数 -驾驶室=2 可用于。
旗 -驾驶室=3 可以用来防止这些逗号被特殊处理。 在
在这种情况下,诸如“01”=> 31 之类的项目被视为表中的单个项目。 这
此表中的字段数将由用于的相同规则确定
任何其他表。 这是一个例子。
#perltidy-cab=3
我的 %last_day = (
"01" => 31, "02" => 29, "03" => 31, "04" => 30,
"05" => 31, "06" => 30, "07" => 31, "08" => 31,
"09" => 30, "10" => 31, "11" => 30, "12" => 31
);
保留 or 忽略 现有 LINE 休息
有几个附加参数可用于控制线的范围
输入脚本中的中断会影响输出脚本。 大多数情况下,默认
设置参数值,以便在可以选择的情况下,输出样式遵循
输入方式。 例如,如果输入脚本中的一个短逻辑容器被破坏,
那么默认行为是它在输出脚本中保持损坏。
本节中的大多数参数仅在一次转换时需要
从短容器长度到更长容器长度的脚本。 反效果,
将长容器长度转换为较短长度的方法,可以通过临时获得
使用较短的最大行长度。
-碗, --break-at-old-逻辑断点
默认情况下,如果逻辑表达式在“&&”、“||”、“and”或“or”处中断,则
容器将保持破碎状态。 此外,在内部关键字“if”和“unless”处中断
一般会保留。 为了防止这种情况,从而形成更长的线条,请使用 -nbol.
- 书, --break-at-old-keyword-断点
默认情况下,perltidy 将在可能返回列表的关键字之前保留一个断点,
例如“排序”和. 这允许将这些运算符的链显示为一个
每行。 利用 -nbok 以防止保留这些断点。
-机器人, --在旧三元断点处中断
默认情况下,如果条件(三元)运算符在“:”处被破坏,那么它将
保持破碎。 为了防止这种情况,从而形成更长的行,请使用 -nbot.
-蟒蛇, --在旧属性断点处中断
默认情况下,如果属性列表在源文件中的“:”处被破坏,那么它将
保持破碎。 例如,给定以下代码,在 ':' 处换行
将被保留:
我的@field
: 场地
: 默认(1)
: Get('Name' => 'foo') : Set('Name');
如果属性在源代码中的单行上,那么它们将保留在
如果可能,单行。
为了防止这种情况,从而总是形成更长的线条,请使用 -nboa.
-iob, --忽略旧断点
使用此标志告诉 perltidy 最大程度地忽略现有的换行符
可能的。 这将倾向于产生尽可能长的容器,无论
类型,不超过行长度限制。
-kis, --keep-interior-分号
使用 -kis 如果没有中断,则防止在分号处中断的标志
输入文件。 通常 perltidy 在每个分号后放置一个换行符
终止一个语句,除非几个语句包含在一个单行大括号中
堵塞。 为了说明,请考虑以下输入行:
dbmclose(%verb_delim); undef %verb_delim;
dbmclose(%expanded); undef %展开;
默认是在每条语句之后中断,给出
dbmclose(%verb_delim);
undef %verb_delim;
dbmclose(%展开);
undef %展开;
通过 危险性 -kis 保留多个语句:
dbmclose(%verb_delim); undef %verb_delim;
dbmclose(%expanded); undef %展开;
报表仍受指定值的约束 最大行长 和
如果超过此最大值将被破坏。
空白 LINE 通过积极争取让商标与其相匹配的域名优先注册来维护
如果小心放置空行,可以提高脚本的可读性。
Perltidy 有几个用于控制插入、保留和删除的命令
空行。
-fbl, --冻结空白行
选择 -fbl 如果您希望脚本中的空白行保持原样。
然后可以忽略本节中的其余参数。 (注:设置
-fbl flag 相当于设置 -mbl=0 和 -kbl=2).
-英国广播公司, --注释前的空白
在整行注释之前将引入一个空行。 这是默认设置。 利用
-全国广播公司 or --注释前没有空白 防止这样的空行被
介绍。
-blbs=n, --subs 之前的空白行=n
参数 -blbs=n 要求最少 n 空行在子定义之前
不跟随评论并且超过一行。 默认是
<-blbs=1>。 BEGIN 和 END 块包括在内。
无论值如何,都将插入请求的空白语句数
--最大连续空白行=n (-mbl=n) 除了如果 -mbl=0 那就不要
将输出空白。
此参数与值交互 k 参数的
--最大连续空白行=k (-mbl=k) 如下:
1。 如果 -mbl=0 则不会输出空格。 这允许抑制所有空白
用一个参数。 否则,
2.如果脚本中的旧空行数小于 n 然后附加
将插入空白以使总数 n 不考虑价值 -mbl=k.
3.如果脚本中的旧空行数等于或超过 n 然后这个
参数无效,但总数不会超过指定的值
-mbl=k 旗。
-blbp=n, --packages 之前的空白行=n
参数 -blbp=n 要求最少 n 空行在一个包之前
不关注评论。 默认值为 <-blbp=1>。
此参数与值交互 k 参数的
--最大连续空白行=k (-mbl=k) 以相同的方式描述为
上一项 -blbs=n.
- 论坛, --subs 之前的空白
为了与以前的版本兼容, - 论坛 or --subs 之前的空白 是等价的
至 -blbp=1 和 -blbs=1.
同样, -nbbs or --subs 之前的 noblanks 相当于 -blbp=0 和 -blbs=0.
-bbb, --块前的空白
将在由分隔的编码块之前引入一个空白行 HPMC胶囊, 的foreach,
而, 直到和 if, 除非,在以下情况下:
· 块前面没有注释。
· 该块不是单行块。
· 当前压痕深度处连续非空行数为
最少 -lbl (请参阅下一部分)。
这是默认设置。 此选项的目的是在内部引入一些空间
密集编码。 这被否定了 -nbbb or --noblanks-before-块.
-lbl=n --长块行数=n
这控制允许 perltidy 在某个块之前添加空行的频率
类型(参见上一节)。 默认值为 8。输入值 0 是等价的
输入一个非常大的数字。
-mbl=n --最大连续空白行=n
此参数指定最大连续空行数,这将是
脚本代码部分中的输出。 默认值为 n=1。 如果输入文件有
超过 n 个连续的空行,除非另有说明,否则数量将减少到 n
以上为 -blbp 和 -blbs 参数。 如果 N = 0 然后不会输出空行
(除非所有旧的空白行都保留在 -kbl=2 下一节的标志)。
这个标志显然不适用于 pod 部分、here-documents 和引号。
-kbl=n, --保留旧空白行=n
这个 -kbl=n flag 使您可以控制如何处理现有的空白行。
可能的值 n 是:
n=0 忽略所有旧的空行
n=1 稳定:保留旧空白,但受 B<-mbl=n> 标志值的限制
n=2 保留所有旧的空白行,无论 B<-mbl=n> 标志的值如何
默认是 N = 1.
-哭泣, --吞下可选空白行
这相当于 千字节=0 并包含在内是为了与以前的版本兼容。
-nsob, --noswallow-可选空白行
这相当于 千字节=1 并包含在内是为了与以前的版本兼容。
样式
样式是指现有参数的方便集合。
- 牛羚, --gnu 风格
- 牛羚 给出了 GNU 编码标准的近似值(不适用于 perl)
因为它们有时会被实施。 目前该样式覆盖默认样式
具有以下参数:
-lp -bl -noll -pt=2 -bt=2 -sbt=2 -icp
-pbp, --perl-最佳实践
-pbp 是书中参数的缩写 Perl的 最棒的 行为准则 达米安
康威:
-l=78 -i=4 -ci=4 -st -se -vt=2 -cti=0 -pt=1 -bt=1 -sbt=1 -bbt=1 -nsfs -nolq
-wbb="% + - * / x != == >= <= =~ !~ < > | & =
**= += *= &= <<= &&= -= /= |= >>= ||= //= .= %= ^= x="
请注意,此参数集包括 -st 和 -se 标志,它们使 perltidy
仅作为一个文件的过滤器。 这些可以通过放置覆盖 -nst 和 -nse
在 -pbp 参数之后。
还要注意连续缩进的值,-ci=4,等于
完整的缩进,-i=4。 在一些复杂的语句中,perltidy 会产生更好的
-ci=2 的结果。 这可以通过在 -pbp 之后包含 -ci=2 来实现
范围。 例如,
#perltidy-pbp
$self->{_text} = (
!$ 部分? ''
: $type eq 'item' ? “$section 条目”
: "$section 上的部分"
)
。 (
$页
? ($section ?' in ':'')。 “$page$page_ext 手册页”
: '本文档中的其他地方'
);
#perltidy-pbp-ci=2
$self->{_text} = (
!$ 部分? ''
: $type eq 'item' ? “$section 条目”
: "$section 上的部分"
)
。 (
$页
? ($section ?' in ':'')。 “$page$page_ext 手册页”
: '本文档中的其他地方'
);
其他 Controls
删除选定的文本
Perltidy 可以选择性地删除评论和/或 pod 文档。 命令 -dac
or --删除所有评论 将删除所有评论 和 所有 pod 文档,离开
只是代码和任何领先的系统控制线。
命令 -dp or --删除 Pod 将删除所有 pod 文档(但不删除评论)。
删除评论(但不是 pod)的两个命令是: -dbc or --删除块评论
和 -DSC or --删除评论. (挂边评论将被删除
在此处阻止评论。)
这些命令的否定也有效,并且是默认值。 何时屏蔽评论
被删除,任何领先的“hash-bang”都将被保留。 此外,如果 -x 使用标志,
将保留前导哈希爆炸之前的任何系统命令(即使它们在
评论的形式)。
将所选文本写入文件
当 perltidy 写入格式化的文本文件时,它还可以发送选定的
文本到带有 。球座 延期。 此文本可以包含评论和 pod
文档。
命令 -tac or --tee-所有评论 将写所有评论 和 所有吊舱
文档。
命令 -tp or --发球台 将编写所有 pod 文档(但不是注释)。
写评论(但不是 pod)的命令是: -待定 or --tee-block-评论 和
-tsc or --发球台评论. (挂边评论会用block写
评论在这里。)
这些命令的否定也有效,并且是默认值。
使用 .pertidyrc 命令文件
如果你经常使用 perltidy,那么在你创建一个
.pertidyrc 文件以避免键入常用参数。 Perltidy 将首先查看
在当前目录中找到一个名为的命令文件 .pertidyrc. 如果没有找到
一,它将继续在其他标准位置寻找一个。
这些其他位置与系统有关,可以使用命令显示
“perltidy -dpro”。 在Unix系统下,它会首先寻找一个环境变量
珀尔蒂迪. 然后它会寻找一个 .pertidyrc 主目录中的文件,然后
对于系统范围的文件 /usr/local/etc/perltidyrc,然后它会寻找
/etc/perltidyrc. 请注意,最后两个系统范围的文件没有前导
点。 更多与系统相关的信息将在 INSTALL 文件中找到
以 perltidy 分布。
在 Windows 下,perltidy 还会搜索一个名为 perltidy.ini 的配置文件
因为 Windows 不允许文件带有前导句点 (.)。 使用“perltidy -dpro”
查看系统的可能位置。 一个例子可能是 C:\文件 和
设置\全部 用户\perltidy.ini.
另一种选择是使用 PERLTIDY 环境变量。 方法为
设置环境变量取决于您使用的 Windows 版本。
可在此处找到 Windows 95 及更高版本的说明:
http://www.netmanage.com/000/20021101_005_tcm21-6336.pdf
在 Windows NT / 2000 / XP 下,PERLTIDY 环境变量可以放在
用户部分或系统部分。 后者使配置文件通用
给机器上的所有用户。 一定要输入配置文件的全路径
在环境变量的值中。 前任。 PERLTIDY=C:\文档和
设置\perltidy.ini
配置文件是自由格式的,只是一个参数列表,就像它们一样
将在命令行上输入。 可以使用任意数量的行,任意数量
每行参数个数,尽管每行一个参数可能最容易阅读
线。 注释文字以#开头,#前还必须有空格
侧面评论。 将复杂的参数放在 single 或 double 中是个好主意
引号。
这是一个例子 .pertidyrc 文件:
# 这是一个简单的 .perltidyrc 配置文件
# 这实现了一个高度间隔的样式
-se # 错误到标准错误输出
-w # 显示所有警告
-bl # 大括号换行
-pt=0 # 括号一点也不紧
-bt=0 # 大括号不紧
-sbt=0 # 方括号不紧
中的参数 .pertidyrc 文件首先安装,所以任何参数
命令行将优先于它们。
为避免混淆,perltidy 会忽略 .perltidyrc 文件中的任何命令
导致某种转储和退出。 这些是:
-h -v -ddf -dln -dop -dsn -dtt -dwls -dwrs -ss
有几个选项可能有助于调试 .pertidyrc 文件:
· 一个非常有用的命令是 --转储配置文件 or -dpro. 它写了一个所有的列表
配置文件名测试到标准输出,如果找到文件,它
在退出之前将内容转储到标准输出。 所以,要找出在哪里
perltidy 查找它的配置文件,如果有的话,它会查找哪个配置文件
进入
perltidy-dpro
· 使用替代名称开发和测试配置文件可能是最简单的,
并调用它们 -pro=文件名 在命令行上。 然后重命名想要的
文件以 .pertidyrc 等结束了。
· 中的参数 .pertidyrc 文件可以关闭 -npro 选项。
· 命令 --转储选项, --转储默认值, --转储长名称和
--dump-短名称,所有描述如下,可能都有帮助。
创建一个新的缩写
一个特殊的符号可用于 .pertidyrc 用于创建一个文件
一组选项的缩写。 这可以用来创建一个速记
或更多经常使用但并非总是使用的样式。 符号是分组
花括号中的选项前面是别名的名称(没有
前导破折号),像这样:
新词 {
-选择1
-选择2
}
协调 新词 是缩写,并且 选择1等是现有参数 or other
缩略语. 主要的语法要求是新的缩写必须以
一条新线。 花括号前后的空格是可选的。 对于一个特定的
例如,以下行
通风 {-bl -pt=0 -bt=0 -sbt=0}
可以放在一个 .pertidyrc 文件,然后随意调用
perltidy-airy somefile.pl
(可以使用“-airy”或“--airy”)。
跳过领先的非 perl 命令 -x or --寻找哈希爆炸
如果您的脚本有系统命令的前导行或其他无效的文本
perl 代码,它们与 perl 代码的开头通过“哈希爆炸”分开
行,(形式为 "#!...perl" 的一行),您必须使用 -x 标志告诉 perltidy
不要在“hash-bang”行之前解析和格式化任何行。 这个选项也
检查语法时使用 -x 标志调用 perl。 这个选项最初是
添加以允许 perltidy 解析交互式 VMS 脚本,但它应该用于
通常使用“perl -x”调用的任何脚本。
使文件不可读
perltidy 的目标是提高文件的可读性,但是有两个
具有相反效果的命令, --曼格勒 和 - 拉伸. 他们实际上是
只是其他参数组合的别名。 这两个都带可能
空白,但留下评论和 pod 文档,以便它们本质上是
可逆的。 这些之间的区别在于 --曼格勒 尽可能少
脚本中的换行符 while - 拉伸 把最大可能。 请注意,这些
选项不提供任何有意义的混淆,因为 perltidy 可用于
重新格式化文件。 它们最初是为了帮助测试标记化而开发的
perltidy 的逻辑,但它们还有其他用途。 一种用于 --曼格勒 如下:
perltidy --mangle myfile.pl -st | | perltidy --mangle myfile.pl -st | perltidy -o myfile.pl.new
这将形成最大可能数量的单行块(见下一节),并且
有时可以帮助清理格式错误的脚本。
可以使用类似的技术 - 拉伸 而不是 --曼格勒 使最小
一行块的数量。
另一种用途 --曼格勒 是将它与 -dac 减少 perl 的文件大小
脚本。
单行块
关于单行块有几点需要注意。 一个单行块是
像这样的东西,
如果 ($x > 0) { $y = 1 / $x }
其中花括号内的内容足够短,可以放在一行中。
除了少数例外,如果可能的话,perltidy 会保留现有的单行块
在行长度约束内,但它不会尝试形成新的约束。 其他
也就是说,perltidy 会尽量遵循输入文件的单行块样式。
但是,如果现有的单行块长于最大行长度,它将
被分成多行。 发生这种情况时,perltidy 会检查并添加任何
可选的终止分号(除非 -NASC 使用选项)如果块是
代码块。
主要的例外是 perltidy 将尝试在下面形成新的单行块
关键字“map”、“eval”和“sort”,因为这些代码块通常很小且
最清楚地显示在一行中。
单行阻止规则可能与 cuddled-else 选项发生冲突。 当被拥抱的其他人
使用选项,perltidy 保留现有的单行块,即使它们不服从
拥抱其他格式。
有时,当单行块因为超出可用行而被破坏时
长度,格式将违反请求的大括号样式。 如果发生这种情况,
第二次重新格式化脚本应该可以解决问题。
调试
以下标志可用于调试:
--转储默认值 or -ddf 将默认选项设置为标准输出并退出
--转储配置文件 or -dpro 将写入当前配置文件的名称及其
内容到标准输出并退出。
--转储选项 or -点 将当前选项集写入标准输出并退出。
--转储长名称 or -dln 将写入所有命令行长名称(传递给
Get_options) 到标准输出并退出。
--dump-短名称 or -dsn 将所有命令行短名称写入标准输出
并退出。
--转储令牌类型 or -dtt 将所有令牌类型的列表写入标准输出
并退出。
--dump-想要左边空间 or -dwls 将散列 %want_left_space 写入标准
输出并退出。 请参阅控制标记周围的空白部分。
--dump-想要右空间 or -dwrs 将散列 %want_right_space 写入标准
输出并退出。 请参阅控制标记周围的空白部分。
--不记忆 or -nmem 会转记忆。 记忆可以减少运行时间
在单个进程中重复运行 perltidy。 它默认开启,但可以
停用以进行测试 -nmem.
-调试 将写入一个带有扩展名的文件 .调试 对于每个输入文件显示
所有代码行的标记化。
使用 MakeMaker、AutoLoader 和 SelfLoader
可能由 MakeMaker 评估的文件的第一行 $VERSION 被传递
除了缩进之外没有变化。 利用 --nopass-版本行或 -npvl, 停用
这项特征。
如果使用了AutoLoader模块,perltidy看到后会继续格式化代码
__END__ 行。 利用 --nolook-for-autoloader或 -nlal, 以禁用此功能。
同样,如果使用了 SelfLoader 模块,perltidy 将继续格式化代码
在看到 __DATA__ 行之后。 利用 --nolook-for-selfloader或 -nlsl, 停用
这项特征。
解决旧版本 Perl 的问题
Perltidy 包含许多有助于避免已知的微妙之处和问题的规则
对于旧版本的 perl,这些规则总是优先于任何
格式化标志已设置。 例如, perltidy 通常会避免启动一个
使用裸词的新行,因为如果“use strict”处于活动状态,这可能会导致问题。
没有办法覆盖这些规则。
HTML 配置
这个 -html 总开关
旗 -html 导致 perltidy 编写一个带有扩展名的 html 文件 的.html. 因此对于
例如,以下命令
perltidy -html somefile.pl
将生成一个语法颜色的 html 文件,名为 一些文件.pl.html 可以查看
用浏览器。
请 备注:在这种情况下,perltidy 不会对输入文件进行任何格式化,并且
它不会写入带有扩展名的格式化文件 .tdy. 这意味着两个 perltidy
需要运行才能创建完全重新格式化的脚本 html 副本。
这个 -预 代码片段的标志
当。。。的时候 -预 标志被给出,只有预先格式化的部分,在和
标签,将被输出。 这简化了将输出包含在其他文件中。
默认是输出一个完整的网页。
这个 -nnn 行号标志
当。。。的时候 -nnn 给定标志,输出行将被编号。
这个 -toc或 --html-目录 旗
默认情况下,包和子程序的目录将被写入
开始 html 输出。 利用 -ntoc 以防止这种情况。 这可能很有用,例如,
对于包含许多不相关代码片段的 pod 文档。 仅此标志
影响代码目录; 它对任何目录都没有影响
由 pod2html 生成(见下一项)。
这个 -荚或 --pod2html 旗
格式化 pod 文档有两种选择。 默认是通过
pod::Html 模块(它构成了 pod2html 实用程序的基础)。 任何
代码段由 perltidy 格式化,然后合并结果。 注意:perltidy
使用 Pod::Html 时创建一个临时文件; 见“文件”。 此外,Pod::Html 创建
缓存的临时文件。
注意:Perltidy 计算“=cut”行的数量,并将 pod 文本移动到
如果有一个“=cut”,则在 html 文件的顶部,或者将 pod 文本保留在其原始文本中
否则顺序(与代码交错)。
pod2html 接受的大多数标志可能包含在 perltidy 命令行中,
它们将被传递给 pod2html。 在某些情况下,标志有一个前缀“pod”
强调它们是针对pod2html的,在它们之前会去掉这个前缀
传递给 pod2html。 具有附加“pod”前缀的标志是:
--[没有]podheader --[没有]podindex --[没有]podrecurse --[没有]podquiet
--[no]podverbose --podflush
与它们在 pod2html 中的使用相比没有变化的标志是:
--backlink=s --cachedir=s --htmlroot=s --libpods=s --title=s
--podpath=s --podroot=s
其中 's' 是一个适当的字符串。 并非所有这些标志都可用于
旧版本的 Pod::Html。 有关更多信息,请参阅您的 Pod::Html 文档。
替代方案,用 -npod,不是使用Pod::Html,而是格式化
斜体的 pod 文本(或样式表指示的任何内容),没有特殊的 html
标记。 这很有用,例如,如果 pod 被用作替代方法
写评论。
这个 -frm或 --帧 旗
默认情况下,会生成一个 html 输出文件。 这可以通过 -frm
选项,它在左侧面板中创建一个包含目录的框架,以及
右侧的源代码。 这简化了代码浏览。 假设,例如,
输入文件是 我的模块.pm. 然后,对于默认文件扩展名选择,这些
将创建三个文件:
MyModule.pm.html - 框架
MyModule.pm.toc.html - 目录
MyModule.pm.src.html - 格式化的源代码
显然,此文件命名方案要求将输出定向到真实文件(如
与标准输出相反)。 如果不是这种情况,或者文件扩展名
是未知的, -frm 选项将被忽略。
这个 -文本=s或 --html-toc-扩展 旗
使用此标志指定目录文件的额外文件扩展名时
使用 html 框架。 默认值为“目录”。 请参阅“指定文件扩展名”。
这个 -sext=s或 --html-src-扩展 旗
使用此标志指定 html 框架时内容文件的额外文件扩展名
被使用。 默认为“src”。 请参阅“指定文件扩展名”。
这个 -亨特或 --html-实体 旗
此标志控制 Html::Entities 对 html 格式的使用。 默认情况下,
模块 Html::Entities 用于编码特殊符号。 这可能不是正确的
一些浏览器/语言组合的东西。 使用 --nohtml-entities 或 -nhent 来
防止这种情况。
样式表
样式表可以很方便的控制和调整html的外观
页。 默认行为是编写带有嵌入样式表的 html 页面。
嵌入样式表的替代方法是创建一个带有指向
外部样式表。 这用 -css=文件名,其中外部
样式表是 文件名. 外部样式表 文件名 如果和
只有当它不存在时。 此选项对于控制多个页面非常有用
单个样式表。
要使 perltidy 将样式表写入标准输出并退出,请使用 -SS或
--样式表, 旗帜。 如果样式表无法为某些人编写,这很有用
原因,比如如果 -预 使用了标志。 因此,例如,
perltidy -html -ss >mystyle.css
将具有默认属性的样式表写入文件 我的样式文件.
鼓励使用样式表,但没有样式表的网页也可以
用标志创建 -nss. 如果您必须确保较旧的
浏览器(粗略地说,是 Netscape Navigator 和 Internet 4.0 之前的版本
Explorer) 可以显示 html 文件的语法着色。
控制 HTML 属性
注意:通常接受默认属性然后编辑
生成的样式表。 但是,本节说明如何控制
带有标记为 perltidy 的属性。
语法颜色可以通过 long 的标志从其默认值更改
形成, -html-颜色-x=n,或更方便的缩写形式, -hcx=n,在 Moku:Pro 上 x
是以下单词之一,并且 x 是对应的缩写:
令牌类型 xx
---------- ------ --
评论评论 c
数字 数字 n
标识符标识符 i
裸字,功能裸字 w
关键字关键字k
相当,模式引用 q
这里 doc text here-doc-text h
这里 doc 目标 here-doc-target hh
标点符号pu
圆括号 p
结构支撑结构 s
分号 分号 sc
结肠结肠co
逗号 逗号 cm
标签标签 j
子定义名称子程序 m
pod text pod-文本 pd
已经定义了一组默认颜色,但可以通过提供值来更改它们
到以下任何参数,其中 n 是 6 位十六进制 RGB 颜色值或
颜色的 ascii 名称,例如“红色”。
为了说明,以下命令将生成一个 html 文件 一些文件.pl.html -
“水”关键词:
perltidy -html -hck=00ffff somefile.pl
这对于大多数浏览器来说应该是等价的:
perltidy -html -hck=aqua somefile.pl
Perltidy 仅写入它在 html 文件中看到的任何非十六进制名称。 下列
HTML 16 标准中定义了 3.2 种颜色名称:
黑色 => 000000,
银 => c0c0c0,
灰色 => 808080,
白色 => ffffff,
栗色 => 800000,
红色 => ff0000,
紫色 => 800080,
紫红色 => ff00ff,
绿色 => 008000,
石灰=> 00ff00,
橄榄 => 808000,
黄色 => ffff00
海军 => 000080,
蓝色 => 0000ff,
青色 => 008080,
水=> 00ffff,
特定浏览器支持更多名称,但使用十六进制最安全
其他颜色的代码。 有用的颜色表可以通过互联网搜索找到
对于“HTML 颜色表”。
除了颜色之外,还可以设置另外两个字符属性:粗体和斜体。 设置一个
标记类型使用粗体,使用标志 --html-粗体-x or -hbx,在 Moku:Pro 上 x or x 旨在
上表中的长名称或短名称。 相反,将令牌类型设置为 NOT
使用粗体,使用 --nohtml-粗体-x or -nhbx.
同样,要将标记类型设置为使用斜体字体,请使用标志 --html-斜体-x
or -hix,又在哪里 x or x 是上表中的长名称或短名称。
并将标记类型设置为不使用斜体,请使用 --nohtml-斜体-x or -nhix.
例如,要使用粗体大括号和石灰色、非粗体、斜体关键字
将使用以下命令:
perltidy -html -hbs -hck=00FF00 -nhbk -hik somefile.pl
背景颜色可以用 --html-颜色-背景=n或 -hcbg=n HPMC胶囊
简而言之,其中 n 是 6 个字符的十六进制 RGB 值。 文本的默认颜色是值
给 标点,默认为黑色。
以下是一些注意事项和提示:
1. 如果您找到一组首选的这些参数,您可能需要创建一个
.pertidyrc 包含它们的文件。 有关说明,请参见 perltidy 手册页。
2. 比起为这些参数指定值,它可能更容易接受
默认值,然后编辑样式表。 样式表包含注释
应该让这很容易。
3. 语法颜色的 html 文件可能很大,所以最好拆分大
文件分成更小的部分,以缩短下载时间。
一些 COMMON INPUT 公约
指定 阻止 类型
一些涉及代码块类型的参数也可以通过指定一个
块类型的关联列表。 块的类型是关键字的名称
引入该块,例如 if, 其他或 分. 一个例外是有标签的块,它
没有关键字,应该只用冒号指定。 要指定所有块使用 '*'.
例如,以下参数指定“sub”、labels、“BEGIN”和“END”块:
-cscl="sub : 开始结束"
(-cscl 参数的含义如上所述。)注意,引号是必需的
由于空格,围绕块类型列表。 再举一个例子,下面
list 指定垂直紧密度的所有块类型:
-bbvtl='*'
指定 文件 扩展
几个参数允许覆盖默认文件扩展名。 例如,备份
文件扩展名可以用 -bext=分机,在 Moku:Pro 上 分机 是一些新的扩展。 为了
为了给用户提供一些灵活性,在所有情况下都使用以下约定
决定是否有前导'.' 应该使用。 如果扩展名“ext”以“AZ”、“az”开头,
或“0-9”,那么它将被附加到文件名中并带有一个中间“。” (或者也许是一个
'_' 在 VMS 系统上)。 否则,它将直接附加。
例如,假设文件是 某个文件. 对于“-bext=old”,一个 '.' 添加给
某个文件.pl.old. 对于“-bext=.old”,没有额外的 '.' 添加,所以再次备份文件
is 某个文件.pl.old. 对于“-bext=~”,则不加点,备份文件为
一些文件.pl~ .
开关类 哪一个 五月 BE 否定
以下列表显示了所有允许前缀“n”生成的短参数名称
否定形式:
D anl asc aws b bbb bbc bbs bl bli boc bok bol bot ce
csc dac DBC dcsc ddf dln dnl dop dp dpro DSC dsm dsn dtt dwls
dwrs dws f fll frm fs hsc html ibc icb icp iob isbc lal 日志
lp lsl ohbr okw ola oll opr opt osbr otr ple pod pvl q
sbc sbl schb scp scsb sct se sfp sfs skp sob sohb sop sosb sot
ssc st sts syn t tac tbc toc tp tqw tsc wx bar kis
等效地,可以在相应的长名称上使用前缀“no”或“no-”。
限制
解析限制
Perltidy 应该在大多数 perl 脚本上正常工作。 它做了很多自检,
但是,仍然有可能引入错误而未被检测到。
因此,必须仔细备份并测试重新格式化的脚本。
当前的主要限制是 perltidy 不扫描包含在“使用”中的模块
陈述。 这使得有必要猜测引入的任何裸词的上下文
通过这样的模块。 Perltidy 有很好的猜测算法,但它们并非万无一失。
当它必须猜测时,它会在日志文件中留下一条消息。
如果您遇到错误,请报告它。
什么 perltidy 不解析和格式化
Perltidy 缩进但不重新格式化注释和“qw”引号。 Perltidy 不在
以任何方式修改此处文档或引用文本的内容,即使它们包含
源代码。 (但是,您可以单独重新格式化它们)。 Perltidy 没有
以任何方式格式化“格式”部分。 而且,当然,它不会修改 pod
文档。
使用 onworks.net 服务在线使用 perltidyp
