Как переформатировать текст редактора “GQ” в одной строке на формат абзаца в Vim

У меня есть некоторые текстовые файлы, ранее отформатированные в энергии с помощью "gggqG". Теперь я должен преобразовать их в одну строку на формат абзаца. Я видел путь (использующий: g команда), чтобы сделать это прежде, но который я имею, забыло это. Кто-либо знает?

9
задан lcltj 21 May 2010 в 06:55
поделиться

3 ответа

Есть два известных мне подхода:

  • Установить ширину текста на что-то большое и переформатировать:

    : установить 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.
13
ответ дан 4 December 2019 в 13:45
поделиться

Если абзацы вашего текста разделены пустой строкой, похоже, это работает:

:g!/^\s*$/normal vipJ

: g global (multi-repeat)

! / ^ \ S * $ / соответствует всем строкам кроме пустых строк и строк, содержащих только пробелы.

нормальный входит в «нормальный» режим

vip визуально выбрать внутренний абзац

J соединить линии

2
ответ дан 4 December 2019 в 13:45
поделиться

Может быть, вам следует установить textwidth в очень большое значение (например, 99999999) (0 почему-то не работает) и использовать gggqG?

// Я не могу сказать вам способ переформатировать ваш абзац с помощью :g, не зная точно, что это за абзац. Может быть, кто-нибудь другой сможет.

0
ответ дан 4 December 2019 в 13:45
поделиться
Другие вопросы по тегам:

Похожие вопросы: