Sublime text удалить пустые строки
Скажем, у меня был текстовый файл со следующими девятью строками:
Как я могу использовать Sublime Text 2 для удаления всех четырех пустых/пустых строк, оставив только пять строк?
ОТВЕТЫ
Ответ 1
- Ctrl + H на ПК или
- Command + Alt + F на Mac или
- Нажмите "Найти" - "Заменить".
Убедитесь, что вы выбрали "регулярное выражение", нажав:
- Alt + R на ПК или
- Command + Alt + R на Mac или
- Нажмите .* в окне поиска.
Заменить с помощью: (ничего, оставьте пустым).
Ответ 2
Регулярное выражение в ответе Hugo корректно, если в строке нет пробелов. В случае, если существует пространственное регулярное выражение, может быть ^\s+$
Ответ 3
Для таких задач есть также плагины ST2/ST3. Мне нравятся эти два:
- Удалить пустые строки (также доступно через Управление пакетами)
- Trailing Spaces (также доступно через управление пакетами)
Первый имеет два метода удаления пустых/ненужных строк. Один из них называется Delete Surplus Blank Lines , который крут. Он удаляет только те строки, за которыми следует еще одна пустая строка
Ответ 4
A Найти/заменить решение:
Заменить на: //одно пространство
Ответ 5
Даже не знаю, как все это работает, но я попытался ^\s*$ и не работал (оставив несколько пустых строк).
Это вместо ^\s* работает для меня
Ответ 6
Мне пришлось использовать:
заменить\n ^\s *\n с \n
Ответ 7
Проще, чем я думал. Ctrl + A Далее следуют Ctrl + H Затем выберите "Регулярное выражение" .* . Замените \n\n на \n . Вуаля!
Ответ 8
Комментарии @crates работают для меня,
Шаг 1: просто нажмите на Ctrl + H
Шаг 2: нажмите клавишу Regex
Шаг 3: напишите это в Find: ^[\s]*?[\n\r]+
Шаг 4: замените все
Ответ 9
Использование нескольких выборов: выберите одну пару разрывов строк, затем используйте "Быстрый поиск всех" ( Alt + F3 ) или "Быстрое добавление следующего" ( Ctrl + D ), чтобы выбрать их все; затем нажмите Enter , чтобы заменить их на разрывы строк.
Ответ 10
он не удалит строку, если есть содержимое с пробелом или вкладками спереди >
они не будут удалены: . space. abc
. space. ничего больше.
. вкладка. ничего больше.
Ответ 11
Другой способ, вы можете использовать командную строку cc.dbl ConyEdit (плагин) для удаления пустых или пустых строк.
Ответ 12
Там также "Join lines". Если в OSX выберите весь текст и несколько раз нажмите CMD-J, и он скроет ваш выбор по строке, удалив разрывы строк.
Изменить: этот подход оставит вас со всем на одной линии, чего вы не просили.
Ответ 13
Для тех, кто интересуется возвышенным текстовым редактором, может быть интересно unofficial-documentation!
Ответ 14
Существует замечательный пакет (для Sublime 2 и 3), который называется " Триммер ", который удаляет пустые строки. Это также делает много других полезных вещей.
Ответ 15
Используя поиск/замену, попробуйте вставить выделение, начинающееся в конце строки над пустой строкой и заканчивающееся в начале строки после пустой. Это работает для одной пустой строки. Вы можете повторить процесс для нескольких пустых строк. CTRL-H, поместите ваш выбор в поле поиска и поместите одну новую строку в поле замены с помощью копирования/вставки или другим способом.
Ответ 16
В моем случае некоторые пустые строки содержали пространство нулевой ширины символа Юникода (U + 200b). Чтобы убрать пустые строки, в том числе с этим символом Unicode:
Ответ 17
Это более простой способ сделать это без регулярных выражений. Вы просто должны выбрать весь текст. затем перейдите по ссылке: Edit--> Permute Lines → Unique.
Как увидел Vintage Mode в действии сразу захотелось научиться им владеть. Как раз к этому времени я прошел курс Соло + VerseQ для слепого печатания на английском. Связка с Vintage Mode, мне казалось, будет очень эффективной для верстки, и я не ошибся.
Для тех кто не знает Vintage Mode (Insert Mode в VIM) плагин для Sublime Text, который идет в комплекте с редактором. Взят он из редактора VIM, и многие думают, что пользу он может принести только бывшим пользователям Vim, но это ошибочное мнение. По умолчанию плагин деактивирован, как активировать объяснять не буду инструкция есть здесь. Скажу только что для входа в режим Vintage используется клавиша i, а для выхода ESC. По моему это крайне неудобно. Я воспользовался советом из оффициальной документации и теперь вхожу в Vintage Mode два раза нажав клавишу i. Подробности тут.
Вроде все отлично осталось только узнать список команд для каждой клавиши, немного понервничать, привыкнуть и готово. Но в официальной документации информации по клавишам нет, они обосновывают это тем, что клавиши те же что и в редакторе Vim. Но различия есть и их немало, документации на русском вообще нет ни по одному из редакторов (именно по Hotkeys Vintage Mode).
Пока искал, записывал и обозначал каждую клавишу для себя, так и получился небольшой справочник по горячим клавишам Vintage Mode для Sublime.
Команды в Vintage Mode
h: влево
l: вправо
j: вниз
k: вверх
: вверх на один параграф
>: вниз на один параграф
H: вверх в пределах экрана
M: в центр в пределах экрана
L: вниз в пределах экрана
v: (visual) выделить
c: (change) изменить
y: (yank) копировать
p: (paste) вставить после курсора
d: (delete) удалить
s: (substitute) заменить (NM)*
r: (replace) поменять символ под курсором
u: (undo) шаг назад
V: выделить строку
C: изменить строку (от курсора до конца) (NM)
Y: скопировать строку
P: вставить до курсора
D: удалить строку (от курсора до конца)
S: заменить всю строку (NM)
J: (join) объединить строку с предыдущей
G: в конец документа
w: на начало следующего ключа
e: на конец следующего ключа
b: на начало предыдущего ключа
i: курсор после символа (NM)
a: курсор до символа (NM)
W: на начало следующего неразделенного ключа
E: на конец следующего неразделенного ключа
B: на начало предыдущего неразделенного ключа
I: курсор в начало в нормальном режиме (NM)
A: курсор в конец в нормальном режиме (NM)
t: (till) до символа справа
f: найти справа (включительно)
o: вставить пустую строку после текущей (NM)
i: (inner) внутри
T: до символа слева
F: найти слева (включительно)
O: вставить пустую строку перед текущей (NM)
cc: изменить строку (оставив отступ) (NM)
dd: удалить строку (от начала до конца)
yy: скопировать строку
gg: в начало документа
gu: в нижний регистр
gU: в верхний регистр
g~: изменить регистр
g?: преобразовать в ROT13
$: в конец строки
^: в начало строки после отступа
(n)_: в начало строки после (n) строк
0: в самое начало строки
%: переключение между любыми скобками
(n)G: перейти на (n)-ую строку
*(NM) — операция с последующим переходом в (Normal Mode) — нормальный, обычный режим редактора Sublime Text.
В процессе работы некоторые из комбинаций забываются, а открывать каждый раз справочник слишком времязатратно. Понравилась идея Ted Naleid, который сделал обои с горячими клавишами для Vim. Я решил переделать его обои под Sublime и русифицировать их.
Обратите внимание, изображение поделено на 4 четверти, каждая из которых отвечает за свою плоскость. Если комбинация клавиш расположена слева от центра, то операция будет происходить слева от курсора, если комбинация сверху, то сверху от курсора и т.д. По углам я вынес некоторые наиболее важные горячие клавиши, они к плоскостям отношения не имеют.
Выкладываю также исходник со всеми слоями, включая текстовые, для тех кто захочет настроить фон под себя. Делитесь интересными обоями в комментах.
Я указал здесь, те комбинации клавиш которые нашел и которыми пользуюсь сам, если что-то забыл, чего-то не хватает, добавляйте в комментарии.
Надеюсь после публикации данного справочника, пользователей Vintage Mode станет больше. Самое сложное начать, в начале очень трудно привыкнуть, все идет медленно, долго. Но потом уже не замечаешь, что нажимаешь столько разных клавиш, просто чтобы перейти на несколько строк выше. Единственный минус, после изучения начинаешь во всех редакторах, дебагерах, пытаться войти в режим Vintage =) Просто начните и обещаю будете получать еще больше удовольствия от своего любимого редактора.
Let's say I had a text file with the following nine lines:
How can I use Sublime Text 2 to remove all four of the blank/empty lines, leaving only five lines?
19 Answers 19
Select the text
- Ctrl + H on PC, or
- Command + Alt + F on Mac or
- Click Find->Replace.
Make sure you have selected 'regular expression' by pressing:
- Alt + R on PC or
- Command + Alt + R on Mac or
- Click .* in the Find box.
Find what: ^\n or ^(\r|\n\r?)
Replace With: (nothing, leave in blank).
That works, thank you! Is there a way to bind that find/replace to a keyboard shortcut or somehow save it for quick access? I googled it and couldn't find anything
@Crates you don't need the ? , as a * also matches zero occurences and \s* will match the extra '\r' when for example editing windows text in a linux environment, so ^\s*$ does the trick.
The regexp in Hugo's answer is correct when there is no spaces in the line. In case if there are space regexp can be ^\s+$
That assumes that there IS whitespace. Also, it won't work for actually substituting the lines with nothing. Try ^[\s]*?[\n\r]+ instead. I've tested that, and it works.
There are also some ST2/ST3 Plugins for such tasks. I do like these two:
-
(also available via Package Control) (also available via Package Control)
The first one has two methods for removing empty/unnecessary lines. One of them called Delete Surplus Blank Lines which is cool. It removes only those lines that are followed by another empty line
A Find/Replace solution:
Replace with: //single space
Don't even know how this whole thing works, but I tried ^\s*$ and didn't work (leaving still some empty lines).
This instead ^\s* works for me
replace \n^\s*\n with \n
Make sure you select the area you want it to effect and then use the respective shortcut keys Windows: Ctrl+Alt+Backspace (Delete Blank Lines) Ctrl+Alt+Shift+Backspace (Delete Surplus Blank Lines) OSX: Ctrl+Alt+Delete (Delete Blank Lines) Ctrl+Alt+Shift+Delete (Delete Blank Lines) Linux: Ctrl+Alt+Backspace (Delete Blank Lines) Ctrl+Alt+Shift+Backspace (Delete Surplus Blank Lines)
Their is a more easily way to do that without regex. you have just to select the whole text. then go to: Edit--> Permute Lines --> Unique.
That's all. and all blank lines will be deleted.
This will delete ALL non-unique lines. Not just blanks. So, say you have HTML with a lot of lines being a single closing
This may not exact match the origin question, but this is the only native and easiest solution when a) You're sure there are no other duplicated lines. b) You're not fan of regexp.
Допустим, у меня есть текстовый файл со следующими девятью строками:
Как я могу использовать Sublime Text 2, чтобы удалить все четыре пустых / пустых строки, оставив только пять строк?
- Ctrl + H на ПК или
- Command + Alt + F на Mac или
- Щелкните Найти-> Заменить.
Убедитесь, что вы выбрали «регулярное выражение», нажав:
- Alt + R на ПК или
- Command + Alt + R на Mac или
- Щелкните .* в поле поиска.
Найдите что: ^\n или ^(\r|\n\r?)
Заменить на: (ничего, оставьте поле пустым).
Это работает, спасибо! Есть ли способ привязать этот поиск / замену к сочетанию клавиш или как-то сохранить его для быстрого доступа? Я погуглил и ничего не нашел
@Crates вам не нужен ? , так как a * также соответствует нулю и \s* будет соответствовать дополнительному '\ r', например, при редактировании текста Windows в среде Linux, так ^\s*$ же как и трюк.
Регулярное выражение в ответе Хьюго правильное, если в строке нет пробелов. Если есть пробелы, regexp может быть ^\s+$
Это предполагает наличие пробелов. Кроме того, это не сработает для фактической замены строк ничем. Попробуйте ^[\s]*?[\n\r]+ вместо этого. Я это проверил, и это работает.
Для таких задач также существуют плагины ST2 / ST3. Мне нравятся эти двое:
-
(также доступно через Package Control) (также доступны через Package Control)
В первом есть два метода удаления пустых / ненужных строк. Один из них назвал Delete Surplus Blank Lines - это круто. Удаляет только те строки, за которыми следует еще одна пустая строка.
Решение Найти / Заменить:
Заменить на: // одиночный пробел
Даже не знаю, как все это работает, но я пробовал ^\s*$ и не работал (оставив несколько пустых строк).
Вместо этого это ^\s* работает для меня
замените \ n ^ \ s * \ n на \ n
Убедитесь, что вы выбрали область, на которую вы хотите воздействовать, а затем используйте соответствующие сочетания клавиш Windows : Ctrl + Alt + Backspace (Удалить пустые строки) Ctrl + Alt + Shift + Backspace (Удалить лишние пустые строки) OSX : Ctrl + Alt + Delete (Удалить пустые строки) Ctrl + Alt + Shift + Delete (Удалить пустые строки) Linux : Ctrl + Alt + Backspace (Удалить пустые строки) Ctrl + Alt + Shift + Backspace (Удалить лишние пустые строки)
Комментарии от @crates работают на меня,
Шаг 1. Просто нажмите ctrl + H
Шаг 2: нажмите кнопку RegEX
Шаг 3: напишите это в поиске: ^[\s]*?[\n\r]+
Шаг 4: замените все
Проще, чем я думал. Ctrl + A Затем следует Ctrl + H Затем выберите регулярное выражение .* . Заменить \n\n на \n . Вуаля!
Это более простой способ сделать это без регулярного выражения. вам нужно просто выделить весь текст. затем перейдите в: Edit -> Permute Lines -> Unique.
Это все. и все пустые строки будут удалены.
Это удалит ВСЕ неуникальные строки. Не только заготовки. Итак, скажем, у вас есть HTML с большим количеством строк, являющихся одним закрывающим