如何在vim编辑器中对齐对齐?

问题描述 投票:0回答:3

我想使用 vim 以格式良好的方式编辑长文本(散文/无代码)。

让我们考虑这个文件:

lorem_original screenshot

我可以使用句子、段落等。vim 的功能,但长句格式有点难看/可读性差。

所以我想有一些合理的对齐与严格固定的列宽度(假设列=正好100)。

我做了一些测试,安装了

par
unix 命令行实用程序(
sudo apt-get install par
)并设置 vim 使用它(带有“justify”标志):

:set formatprg=par\ jw100

并执行 vim 命令:

gqG

但没有完美的喜悦,请参见此处的屏幕截图:

not-perfect alkignement using par

如您所见,我没有 100 个字符的确切理由。 为什么 ?!这可能是因为 par 无法识别一些 >8 位字符(此处为意大利语文本)?

事实上还有第二个问题:我不想在破坏原始句子(引入空白/换行)的对齐阐述中永久转换原始文本,但我只想查看文本,而不影响原始文本。有办法做到格式化视图模式吗?

vim terminal formatting editor text-alignment
3个回答
1
投票

Vim 有

:set wrap
,仅此而已。请记住,它不是所见即所得编辑器,因此查看合理的文本超出了范围。

您确实必须转换物理文本(来回)。如果

par
实用程序不起作用(我认为它应该处理 UTF-8 编码文本;检查您的
$LANG
值),您还可以尝试使用 Vim 附带的
$VIMRUNTIME/macros/justify.vim
脚本。


1
投票

要在文件上临时使用

par
,请确保您已使用
:w
保存,然后使用
:!par jw100 <% | less
,它将向您显示文件的只读可滚动 100 个字符的合理版本。完成后,按 q,然后按 Enter

这是一些 Lorem Ipsum 文本的示例:

enter image description here


0
投票

实现此目的的正则表达式:

:%s/\([^,]\{100}\)/\1\r/g

也可以将

hyphen
放在行尾分割词处:

:%s/\(\w\)$\n\(\w\)/\1-\r\2/g

等等等等。

© www.soinside.com 2019 - 2024. All rights reserved.