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

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

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

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

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

5 ответов


остерегайтесь: используя этот плагин делает Sublime Text значительно медленнее

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

выделите конечные пробелы и удалите их в мгновение ока.

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

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

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

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

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

  1. Найти > Заменить...
  2. Найти: [ \t]+\n
  3. Заменить На: \n
  4. Заменить Все

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

  1. найти > найти в файлах...
  2. найти: [ \t]+\n
  3. где:
  4. заменить: \n
  5. заменить

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

  1. Multi-Select и переместить курсор в конец каждой строки
  2. удерживайте CTRL-Shift, нажмите влево, вправо
  3. пробелы и знаки табуляции в конце строк должно быть выбран. Нажмите Delete или Backspace

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

Как выбрать все строки:

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

горячие клавиши:

  1. CTRL-A (выбрать все)
  2. CTRL-SHIFT-L (поместите курсор на все выбранные строки)
  3. конец (перейти к концу строк)

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

  1. \s (используя регулярное выражение)
  2. Нажмите Кнопку Найти Все
  3. нажмите клавишу" End", чтобы получить несколько курсоров в конце каждой строки

Текст:

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

Я нашел здесь решение : 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)

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

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

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

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

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