Exp*_* HP 20 linux text-editing plaintext alignment
我正在编写一个具有左右对齐段落的纯文本 (.txt) 文档。我手动添加空格,必要时用连字符打破单词,直到线条长度一致。使用我文档中的一个例子,一个像这样的段落:
这些幻球有一些奇怪的特性,有的整齐,有的 有趣,而其他人只是表示懒惰的设计。他们几乎都是 由相同的设计缺陷造成的:游戏对待他们太像普通人了 球。
最终看起来像这样:
这些梦幻球有一些奇怪的特性, 一些整洁,一些有趣,而另一些只是表明- 懒惰的设计。它们几乎都是由 相同的设计缺陷:游戏对他们太像了 常规球。
我怎样才能做到这一点?
添加空格是可以的(不要在行上打断单词),但我需要控制段落的目标宽度(以 # 个字符为单位)。上面的例子证明每行 53 个字符是合理的,但我实际文档中的行宽从 60 到 79 不等。
如果有一个具有这样功能的文本编辑器也很棒。
我已经尝试过:
我接受了以下答案,因为它是最适合我的答案。我发现 emacs 填充命令在答案中最容易使用,我很欣赏它如何识别非空白缩进(对于诸如 # 和 // 注释之类的东西)。然而,其他答案都填补了他们自己的领域,我建议其他访问这个问题的人也看看他们。
sml*_*sml 20
你需要par
(官方网站,源代码,Repology上的包状态)
例如要在 ubuntu 上获取它,请执行以下操作:
sudo aptitude install par
Run Code Online (Sandbox Code Playgroud)
证明text.txt
(宽度为 80 个字符),节省newtext.txt
:
par j1w80 < text.txt > newtext.txt
Run Code Online (Sandbox Code Playgroud)
在 vim 或 gvim 中使用 par:
:set formatprg=par\ j1w80
Run Code Online (Sandbox Code Playgroud)
然后突出显示要格式化的文本并使用该gq
命令。
有关更多信息,请参阅 man par
fmt
是老式的解决方案
从手册页:
fmt [-cmnps] [-d 字符] [-l num] [-t num] [目标 [最大值] | -宽度| -w 宽度] [文件...]
和
目标长度默认为 65,最大为比目标长度多 10。或者,可以通过在其前面添加连字符或使用 -w 来指定单个宽度参数。例如,
fmt -w 72'',
fmt -72'' 和 ``fmt 72 72'' 都产生相同的输出。
您可以在 emacs 中使用fill-paragraph
or fill-region
( fill docs )执行此操作。
您需要传递一个数字前缀参数。默认填充列是 70。
选择要填充的文本并执行M-3 M-x fill-region
。
我将示例文本的填充列设置为 53 并得到:
These phantasmic balls have some strange properties,
some neat, some interesting, and others just
indicative of lazy design. They're almost all caused
by the same design flaw: The game treats them too
much like regular balls.
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
10463 次 |
最近记录: |