Sublime text 3 удалить пробелы
Пример: если у меня есть документ с отступом в 2 пробела, и я хочу, чтобы он имел отступ в 4 пробела, как мне автоматически преобразовать его с помощью редактора Sublime Text?
Вот изящный трюк в Sublime Text 2 или 3 для преобразования вашего отступа в документе.
TL; DR:
Преобразование 2 пробелов в 4 места:
Убедитесь, что для ширины табуляции установлено значение 2. Преобразуйте отступ с двумя пробелами в табуляцию, переключитесь на ширину табуляции 4, а затем преобразуйте отступ обратно в пробелы.
Подробное описание:
Он должен читать:
- Tab width: 4
- Convert Indentation to Spaces
Недавно столкнулся с подобной проблемой. Я использовал превосходный редактор. проблема не в коде, а в редакторе.
Ниже у меня сработало изменение настроек предпочтений.
Меню Sublime Text -> Настройки -> Настройки: зависит от синтаксиса :
Самым простым, что я сделал, было,
изменил мой отступ на вкладки
И это решило мою проблему.
Ты можешь сделать то же самое,
А также в соответствии с вашими потребностями.
Упомянул снимок того же.
Я также последовал совету Джоша Франкеля и создал Sublime Macro + добавленную привязку клавиш. Разница в том, что этот сценарий гарантирует, что интервал сначала устанавливается на табуляцию и устанавливается на размер табуляции 2. Макрос не будет работать, если это не начальная точка.
В Mac, чтобы использовать привязку макроса + клавиши:
- Создайте файл с именем spaces2to4.sublime-macro и скопируйте / вставьте код из сути. Для меня это находится по адресу:
/Library/Application\ Support/Sublime\ Text\ 3/Packages/User/spaces2to4.sublime-macro
- Выберите Sublime Text > Preferences > Key Bindings
- Добавьте эту команду в указанную пользователем таблицу sublime-keymap (она находится в массиве - она может быть пустой):
Теперь ⌘ + shift + o теперь автоматически преобразует каждый файл с отступа в 2 пробела в 4 (но сохранит отступ, если вы запустите его дальше)
Вы должны добавить этот код в свои пользовательские привязки клавиш:
Нажав ctrl + f12, он изменит отступ вашего файла до размера табуляции 4, если вы хотите другой размер табуляции, вы просто измените число «значения». Формат te - это простой json.
Я написал для него плагин. Вы можете найти его здесь или найти «ReIndent» в элементе управления пакетами. В основном он делает то же самое, что написал Кайл Финли, но удобным способом с ярлыками для преобразования между 2 и 4 и наоборот.
Если вы найдете более быстрый поиск и замену, вы можете использовать замену регулярного выражения следующим образом:
Найти (регулярное выражение): (^|\G) (вместо "" <space> вы можете просто написать два пробела. Используется здесь для ясности.)
Замените 4 пробелами или как хотите, например \t .
Хотя многие из предложений работают при преобразовании 2 -> 4 пробела. Я столкнулся с некоторыми проблемами при преобразовании 4 -> 2.
Вот что я в итоге использовал:
Sublime Text 3/Packages/User/to-2.sublime-macro
Я нашел, на мой взгляд, более простое решение, чем Magne:
В Windows или других платформах измените cmd+f и alt+enter любыми горячими клавишами find и select all .
Примечание: этот метод подвержен «ошибкам», если в вашем коде есть более одного пробела. Таким образом, он менее безопасен, чем метод Магне, но быстрее (по крайней мере, для меня).
На самом деле я обнаружил, что для моего рассудка лучше, чтобы пользовательские предпочтения определялись следующим образом:
detect_indentation: false особенно важен, поскольку он заставляет Sublime соблюдать эти настройки в каждом файле, в отличие от настроек View -> Indentation .
Если вы хотите пофантазировать, вы также можете определить сочетание клавиш для автоматического изменения отступа вашего кода (YMMV), вставив следующее в Sublime -> Preferences -> Key Binding - User :
Как удалить точки, отмеченные красным цветом на скриншоте?
1 ответ
Поскольку бета-версия sublime text 3 была выпущена и открыта для публики, я решил перейти на нее. Оказывается, большинство плагинов, которые я обычно использую, еще не готовы к использованию, и это замедлило меня. Я хотел удалить его и возобновить использование sublime text, но не нашел никакого.
Я работаю с фрагментами в Sublime Text 2/3 и хотел бы знать, есть ли какой-либо способ удалить пробелы из зеркальных полей. Пример: Variable Description = $1; Должно стать следующим, если пользователь наберет: время обеда Variable Description = Dinner Time;
Перейдите в Настройки - Настройки - Пользователь и добавьте
Похожие вопросы:
У меня есть струны следующего сорта: A B C Company XYZ Inc S & K Co Я хотел бы удалить пробелы в этих строках, которые находятся только между словами длиной в 1 букву. Например, в первой строке.
Я хотел бы написать код в Sublime Text 3 так, чтобы всякий раз, когда я уже отступил некоторое количество пробелов, а затем нажал Enter, чтобы пропустить строку, пропущенная строка сохраняла тот же.
Я установил плагин Emmet в Sublime text 3, и когда я набираю 'function' в синтаксисе JavaScript, редактор автоматически заполняет его в function function_name (argument) < // body. >, но мне.
Поскольку бета-версия sublime text 3 была выпущена и открыта для публики, я решил перейти на нее. Оказывается, большинство плагинов, которые я обычно использую, еще не готовы к использованию, и это.
Я работаю с фрагментами в Sublime Text 2/3 и хотел бы знать, есть ли какой-либо способ удалить пробелы из зеркальных полей. Пример: Variable Description = $1; Должно стать следующим, если.
Я создаю новую функцию для выравнивания текста. Я знаю, что есть несколько плагинов, но они не делают того, что я хочу, поэтому я решил создать функцию сам. до: text_text_text_text_____ после.
Я хочу удалить пробелы между двумя словами или более и двумя символами и более, если они существуют. Пример : text = hello w orld or text = h el lo w or ld И я хочу быть такой : text = hello.
Я ищу способ заставить Sublime 3 удалить все пробелы и табуляции из любой строки с отступом, которая пуста в моем коде, либо при сохранении файла, либо при вводе текста. Есть ли способ? | if (. )
Я только что установил sublime text 3; когда я сохраняю скрипт и запускаю его, whitespace и первая строка заключены в прямоугольники. Как я могу их удалить? Я приложил снимок экрана. У меня есть.
У меня есть некоторые ценности, которые выглядят так: $lang['Delivery Charge'] = 'Delivery Charge'; $lang['Frequently Asked Questions'] = 'Frequently Asked Questions'; Я использую это регулярное.
Как без ущерба проекту пакетно заменить пробелы на табы? Я имею ввиду, чтобы не открывать каждый файл, если файлов больше тысячи, — замучаться можно, — а сделать это массово.
UPD. Саша, спасибо большое за ссылки, думаю, одна из них приблизила меня к цели. :) Только когда я вписываю в поиск Find: , ST3 пишет, что ничего не найдено. К сожалению, Windows у меня действительно нет под рукой. Ещё не совсем понимаю смысл вот этой фразы:
As mentioned in comments to match spaces at the start of a line you can use the regexp ^( )+
UPD. 2 Большое Вам спасибо! Действительно, всё получилось, вот только проблема в том, что ST3 открыл все файлы, и каждый приходится сохранять. Можно ли как-то сделать, чтобы он сам всё сохранил и закрыл? Или, может, существует другое, альтернативное решение?
В основном меню: View - Indentaion
На оффсайте можно почитать подробности: Indentation Settings
В unix-подобных системах существует утилита unexpand . Для обработки группы файлов можно написать простенький скрипт на bash :
expand делает обратную замену.
Напротив Find: вставляем регулярное выражение ^ , где 4 — количество пробелов, которые мы заменяем отступом. По умолчанию — 4, если прежде не меняли никаких настроек индентации, оставляйте ^ . Регулярные выражения должны быть включены самой левой кнопкой консоли «Find in files» (той, которую мы вызвали шорткатом Ctrl + Shift + F ).
Напротив Replace: вставляем \t — метасимвол табуляции.
Жмём на Replace → файлы, в которых произведена замена, откроются в новых вкладках, → в верхнем меню кликаем File → Save All . Замена произведена. File → Close All Files — все вкладки закроются.
Для тех, кто пакетно работает с множеством файлов, не покажется лишним плагин TabExtra, добавляющий новые возможности при работе с вкладками. Положим, в нашем примере мы сделали массовую замену, но где-то опечатались в синтаксисе регулярных выражений, из-за чего получилось не то, что требовалось. Кликаем правой кнопкой мыши по любой вкладке → Close Tab(s): Dismiss Unsaved → Close All Tabs → все вкладки закроются без сохранения.
На английском Stack Overflow рекомендуют использовать шаблон ^( )+ . Однако если Ваш код отформатирован каким-нибудь Beautifier'ом, то оформление может испортиться, и придётся форматировать заново.
Пример применения моего регулярного выражения:
Пример применения регулярного выражения, рекомендованного на англоязычном Stack Overflow:
^ — метасимвол начала строки. Если его не использовать, в отступы отконвертируются пробелы, стоящие не только в начале строки, но и в любом другом месте текста.
( ) — пробел, повторённый 4 раза. Эквивалентно ( ) .
+ — квантор, означающий повторение выражения в скобках 1 или более раз. Другими словами 4, 8, 12 и другие кратные четырём количества пробелов подряд заменятся на один отступ. Код может выстроиться в один столбец как на примере.
Если не желаете терять оформление, используйте регулярное выражение ^ .
Чтобы проблемы с табами/пробелами в дальнейшем не беспокоили, в какой бы операционной системе и IDE/редакторе ни работали разработчики проекта, сейчас повсеместно для каждого мало-мальски используемого редактора или IDE применяется плагин EditorConfig. После установки через PackageControl в папке проекта создаём файл .editorconfig , куда вставляем следующий текст:
У всех файлов проекта будет автоматически настраиваться Tab_Size:4 , пусть вы поставили или редактор определил («умное» автоопределение можно отключить в открывающийся после Preferences → Settings - User файл, добавив в него строку "detect indentation": false , однако Sublime Text 3 всё равно порой устанавливает индентацию по-своему) иначе.
Представлены значения по умолчанию, можете менять их по своему усмотрению, подробности в статье на Хабрахабре. Поддерживаемые настройки для Sublime Text.
Если я выделю какой-то текст, например "Салли пришла из дома", есть ли способ удалить все пробелы?
2 ответа
Я хочу удалить слово mutiline с помощью sublime-text. например, я хочу удалить весь номер строки (есть номера строк, потому что я вставляю код откуда-то) следующим образом:
Я хотел бы удалить и / или деактивировать пакет Emmet в Sublime Text 2. Должен ли я просто удалить каталог Emmet или каков типичный рабочий процесс для удаления пакета?
Используйте панель поиска. Выберите "In Selection" и найдите пробел. Нажмите "Find All" и удалите.
В качестве альтернативы вы можете использовать панель найти & заменить и просто заменить пробелы ничем.
чтобы открыть меню найти и заменить
Затем нажмите на следующий значок, чтобы найти его только в текущем выборе
Затем введите пробел в поле найти и либо нажмите find_all и нажмите удалить, либо ничего не добавляйте для замены и нажмите replace_all
Похожие вопросы:
Я понятия не имею, как это исследовать. Я добавляю элемент span при выборе текста в div. работает отлично. В случае, если пользователь снова выберет элемент span (текст внутри или снаружи), как.
Я установил управление пакетами, и я часто использую его, проблема в том, что я добавил новый репозиторий, и это неправильно, и когда я пытаюсь установить другой пакет, sublime throw exception.
Я хочу удалить слово mutiline с помощью sublime-text. например, я хочу удалить весь номер строки (есть номера строк, потому что я вставляю код откуда-то) следующим образом:
Я хотел бы удалить и / или деактивировать пакет Emmet в Sublime Text 2. Должен ли я просто удалить каталог Emmet или каков типичный рабочий процесс для удаления пакета?
Я хочу этого, когда когда-либо нажимаю ctrl + alt + m в Sublime Text найдите и замените все (в выделенном тексте). Найти для (regex): (\.\w+)[[:blank:]]*(\(.+), заменить на: \1 \2, как я могу это.
Я работаю с фрагментами в Sublime Text 2/3 и хотел бы знать, есть ли какой-либо способ удалить пробелы из зеркальных полей. Пример: Variable Description = $1; Должно стать следующим, если.
Как удалить строку в sublime text так же, как она удалена в intellij ? А именно: строка удаляется, и курсор возвращается в предыдущее положение на вновь отображаемой строке.
Мой вопрос очень прост: Есть ли ярлык в Sublime Text 3, который позволяет удалить пустые строки в выделенном тексте? (то же самое для заготовок в строке) Например, как сделать этот текст: a b c.
Я только что установил sublime text 3; когда я сохраняю скрипт и запускаю его, whitespace и первая строка заключены в прямоугольники. Как я могу их удалить? Я приложил снимок экрана. У меня есть.
Читайте также: