2019年12月17日火曜日

英文を1行1文なるようにvimで整形する

PDFからコピペしたときなど、英文を1行1文に改行したいときがあります。vimでの整形します。

文頭が行頭になるようにする


This
is
my pen.



This is my pen.

とするには
:g/\w\s\?$\n[a-z]/ join
とします。

g/ / join はファイル全体でマッチしたものにjoin適用の意味

\w\s\?$  は文字(とスペース)で行末
\n  改行
[a-z]  小文字にマッチ

これだと3行ある場合は2回マッチしないとダメです。

This
is
my pen.



This is
my pen.

になるので、もう一度実行します。

1行に2文あるときも改行する



Hello.
This is my pen.



Hello.
This is my pen.

というようにするには、

:%s/\.\zs\s\ze[A-Z]/\r/gc

とするとピリオドと大文字の間のスペースにマッチして、それを改行(\r)に置換します。


0 件のコメント:

コメントを投稿