Vim удаление пустых строк



какую команду я могу запустить, чтобы удалить пустые строки в Vim?

707   14  

14 ответов:

:g/^$/d

:g выполнит команду на строках, которые соответствуют регулярному выражению. Регулярное выражение-это "пустая строка" и команда :d (удалить)

нашел, это:

g/^\s*$/d

источник: власть g в vim wikia

:v/./d

или

:g/^$/d

или

:%!cat -s

следующее Можно использовать для удаления только нескольких пустых строк (уменьшить их до одной пустой строки) и оставить одну пустую строку нетронутой:

:g/^\_$\n\_^$/d
  1. как удалить все пустые строки

    :%s,\n\n,^M,g
    

    (сделайте это несколько раз, пока все пустые строки не исчезли)

  2. как удалить все пустые строки, оставив одну пустую строку

    :%s,\n\n\n,^M^M,g
    

    (сделать это несколько раз)

  3. как удалить все пустые строки, оставив максимум две пустые строки,

    :%s,\n\n\n\n,^M^M^M,g
    

    (сделать это несколько раз)

в порядке для ввода ^M, я должен контролировать-Q и control-M в windows

Как насчет:

:g/^[ \t]*$/d

работа с perl в vim:

:%!perl -pi -e s/^\s*$//g

это работает для меня

:%s/^\s*$\n//gc

эта функция удаляет только две или более пустых строк, помещает строки ниже в ваш vimrc, а затем использует \d для вызова функции

fun! DelBlank()
   let _s=@/
   let l = line(".")
   let c = col(".")
   :g/^\n\{2,}/d
   let @/=_s
   call cursor(l, c)
endfun
map <special> <leader>d :keepjumps call DelBlank()<cr>

я попробовал несколько ответов на этой странице, но многие из них не работали для меня. Может быть, потому что я использую Vim на Windows 7 (Не издевайтесь, просто пожалейте меня :p)?

вот самый простой, который я нашел, который работает на Vim в Windows 7:

:v/\S/d

вот более длинный ответ на Vim Wikia:http://vim.wikia.com/wiki/Remove_unwanted_empty_lines

:g/^\s*$/d
^ begin of a line
\s* at least 0 spaces and as many as possible (greedy)
$ end of a line

вставить

:command -range=% DBL :<line1>,<line2>g/^\s*$/d

в вашей .vimrc, затем перезапустите vim. если вы используете команду :5,12 цена он удалит все пустые строки между 5-й строкой и 12-й строкой. Я думаю, что мой ответ-лучший ответ!

если что-то имеет двойные строки вашего текста, то эта команда удалит двойной интервал и объединит ранее существовавшие повторяющиеся пустые строки в одну пустую строку. Он использует временный разделитель ^^^ в начале строки, поэтому, если это противоречит вашему контенту, выберите что-то другое. Строки, содержащие только пробелы, считаются пустыми.

%s/^\s*\n\n\+/^^^\r/g | g/^\s*$/d | %s/^^^^.*

это сработало для меня:

:%s/^[^a-zA-Z0-9]$\n//ig

Он в основном удаляет все строки, которые не содержат цифру или букву. Поскольку все элементы в моем списке имели буквы, он удалил все пустые строки.

пресс удалить клавиша в режиме вставки для удаления пустых строк.

Comments

    Ничего не найдено.