14 ответов:
:g/^$/d
:gвыполнит команду на строках, которые соответствуют регулярному выражению. Регулярное выражение-это "пустая строка" и команда:d(удалить)
нашел, это:
g/^\s*$/dисточник: власть g в vim wikia
следующее Можно использовать для удаления только нескольких пустых строк (уменьшить их до одной пустой строки) и оставить одну пустую строку нетронутой:
:g/^\_$\n\_^$/d
как удалить все пустые строки
:%s,\n\n,^M,g(сделайте это несколько раз, пока все пустые строки не исчезли)
как удалить все пустые строки, оставив одну пустую строку
:%s,\n\n\n,^M^M,g(сделать это несколько раз)
как удалить все пустые строки, оставив максимум две пустые строки,
:%s,\n\n\n\n,^M^M^M,g(сделать это несколько раз)
в порядке для ввода ^M, я должен контролировать-Q и control-M в windows
эта функция удаляет только две или более пустых строк, помещает строки ниже в ваш 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