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

yrdbyhpb  于 5个月前  发布在  其他
关注(0)|答案(3)|浏览(69)

我想用Vim来编辑长文本(散文/没有代码),以一种格式良好的方式。
让我们考虑这个文件:
x1c 0d1x的数据
我可以使用句子,段落等Vim的功能,但长句格式伊萨难看/可读性差。
因此,我希望有一个严格固定列宽的调整元素(假设列数=正好100)。
我做了一些测试,安装了par unix命令行工具(sudo apt-get install par),并设置Vim使用它(带有'justify'标志):

:set formatprg=par\ jw100

字符串
执行Vim命令:

gqG


但没有一个完美的喜悦,看这里的截图:



正如你所看到的,我没有一个确切的理由,100字符。为什么?!这可能是依赖,因为par不承认一些> 8位字符(意大利语文本在这里)?
事实上还有第二个问题:我不想永久转换原始文本在对齐的阐述,破坏原来的句子(引入空白/新行),但我只会查看文本离开原始文本不变.有一种方法可以做到格式化视图模式?

prdp8dxp

prdp8dxp1#

Vim有:set wrap,仅此而已。记住,它不是一个所见即所得的编辑器,所以作为对齐文本查看超出了范围。
如果par实用程序不起作用(我认为它应该处理UTF-8编码的文本;检查$LANG的值),您也可以给予Vim附带的$VIMRUNTIME/macros/justify.vim脚本一个尝试。

p1tboqfb

p1tboqfb2#

要在文件上临时使用par,请确保已使用:w保存,然后使用:!par jw100 <% | less,它将显示文件的只读可滚动100字符对齐版本。
下面是一个关于一些存有文本的例子:


的数据

0sgqnhkj

0sgqnhkj3#

一个正则表达式来实现这一点:

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

字符串
也可以将hyphen放置在行尾拆分字处,并使用:

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


如此等等。

相关问题