Подтвердить что ты не робот

Sublime Text 2: обрезать белую область по требованию

Я знаю, что Sublime Text 2 может удалить оставшееся пробел в файлах при сохранении.

При работе в команде и внесении изменений в файл это приводит к огромным различиям, которые делают просмотр однорангового кода более громоздким. По этой причине я предпочитаю очищать только пробел, когда я все равно вношу огромные изменения в файл и оставляю пробелы, как и для незначительных изменений.

Я хотел бы знать, есть ли какая-либо команда для выполнения обрезки пробела по запросу в файле, отличном от "Activate trimming on save > Save file > Deactivate trimming".

Поиск в Документации и в stackoverflow не показывал ничего значимого, все ссылки, похоже, говорят об автоматической обрезке при сохранении.

4b9b3361

Ответ 1

Осторожно: использование этого плагина делает Sublime Text значительно медленнее

Я использую плагин TrailingSpaces для этого.

Выделите завершающие пробелы и удалите их в одно мгновение.

ST2 предоставляет способ автоматического удаления конечных пробелов при сохранении файла. В зависимости от ваших настроек может быть удобнее просто выделить их и/или удалить их вручную. Этот плагин обеспечивает только это!

Использование: нажмите "Редактировать/Конечные пробелы/Удалить".

Чтобы добавить привязку ключа, откройте "Настройки/Связки клавиш - Пользователь" и добавьте:

{ "keys": ["ctrl+alt+t"], "command": "delete_trailing_spaces" }

Ответ 2

Я использую эти шаги для быстрого решения по требованию в Sublime Text:

  • Найти > Заменить...
  • Найти что: [ \t]+\n
  • Заменить с помощью: \n
  • Заменить все

Вы также можете сделать это для большого набора файлов через

  • Найти > Найти в файлах...
  • Найти: [ \t]+\n
  • Где:
  • Заменить: \n
  • Заменить

Ответ 3

Здесь очень простой способ, который не использует никаких плагинов или настроек и работает в большинстве ситуаций.

  • Multi-Select и перемещение курсора в конец каждой строки
  • Удерживайте CTRL-Shift, нажмите "Влево", "Вправо"
  • Теперь должны быть выбраны пробелы и вкладки в конце строк. Нажмите "Удалить" или "Назад"

    Примечание. Специальные символы, такие как (и +, также могут быть выбраны в конце строки в этой точке, а не только пробелы.

Как сделать Multi-Select все строки:

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

С помощью горячих клавиш:

  • CTRL-A (выберите все)
  • CTRL-SHIFT-L (поместите курсор на все выбранные строки)
  • END (Перейти к концу строк)

Вы также можете использовать функцию find для поиска того, что будет в каждой строке, например, пробела:

  • \s (с использованием regex)
  • Нажмите "Найти все"
  • Нажмите клавишу "Конец", чтобы получить несколько курсоров в конце каждой строки.

Пример текста:

text and number     44  more text and a space  
text and number 44  more text and 2 tabs        
text and number 44  more text and no space or tab

text and number 44  more text after a line feed

Ответ 4

Вы можете просто использовать регулярное выражение для удаления конечных пробелов:

  1. Найти> Заменить...
  2. Найдите что: [^\S\r\n]+$
  3. Заменить на: оставьте пустым.
  4. Нажмите "Заменить все"

[^\S\r\n]+$ - это регулярное выражение для "хотя бы одного символа пробела (таким образом, пробелы и символы табуляции, но не символы новой строки, использующие двойное отрицание) с последующим концом строки"

Регулярное выражение должно быть включено: Enable regex is search dialog

Ответ 5

Я нашел здесь увлечение: http://www.sublimetext.com/forum/viewtopic.php?f=4&t=4958

Вы можете изменить пакет

trim_trailing_white_space.py

расположенный в каталоге пакетов по умолчанию, следующим образом:

import sublime, sublime_plugin

def trim_trailing_white_space(view):
    trailing_white_space = view.find_all("[\t ]+$")
    trailing_white_space.reverse()
    edit = view.begin_edit()
    for r in trailing_white_space:
        view.erase(edit, r)
    view.end_edit(edit)

class TrimTrailingWhiteSpaceCommand(sublime_plugin.TextCommand):
    def run(self, edit):
        trim_trailing_white_space(self.view)

class TrimTrailingWhiteSpace(sublime_plugin.EventListener):
    def on_pre_save(self, view):
        if view.settings().get("trim_trailing_white_space_on_save") == True:
            trim_trailing_white_space(view)

class EnsureNewlineAtEof(sublime_plugin.EventListener):
    def on_pre_save(self, view):
        if view.settings().get("ensure_newline_at_eof_on_save") == True:
            if view.size() > 0 and view.substr(view.size() - 1) != '\n':
                edit = view.begin_edit()
                view.insert(edit, view.size(), "\n")
                view.end_edit(edit)

Теперь вы можете добавить команду в конфигурацию раскладки клавиатуры:

{ "keys": ["your_shortcut"], "command": "trim_trailing_white_space" }