У меня есть некоторые текстовые файлы, ранее отформатированные в энергии с помощью "gggqG". Теперь я должен преобразовать их в одну строку на формат абзаца. Я видел путь (использующий: g команда), чтобы сделать это прежде, но который я имею, забыло это. Кто-либо знает?
Есть два известных мне подхода:
Установить ширину текста на что-то большое и переформатировать:
: установить tw = 1000000
gggqG
Используйте замену (это более уместно, если вы хотите сделать это в сопоставлении):
:% s /. \ Zs \ n \ ze./ /
Объяснение последнего:
:%s " Search and replace across the whole file
/ " Delimiter
.\zs\n\ze. " Look for a character either side of a new-line (so ignore blank lines).
" The \zs and \ze make the replacement only replace the new-line character.
/ / " Delimiters and replace the new-line with a space.
Если абзацы вашего текста разделены пустой строкой, похоже, это работает:
:g!/^\s*$/normal vipJ
: g
global (multi-repeat)
! / ^ \ S * $ /
соответствует всем строкам кроме пустых строк и строк, содержащих только пробелы.
нормальный
входит в «нормальный» режим
vip
визуально выбрать внутренний абзац
J
соединить линии
Может быть, вам следует установить textwidth в очень большое значение (например, 99999999) (0 почему-то не работает) и использовать gggqG
?
// Я не могу сказать вам способ переформатировать ваш абзац с помощью :g
, не зная точно, что это за абзац. Может быть, кто-нибудь другой сможет.