5

В Sublime Text (используя Sublime Text 3) вы можете выйти из режима множественного выбора / множественного каретки, нажав клавишу Esc. Когда вы сделаете это, останется только первый выбор / каретка.

Есть ли способ сделать так, чтобы вместо него остался только последний выбор / каретка?

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

Случай использования:

Я набираю это, используя множественный выбор:

int foo(
  int x,
  int x,
  int x,
  int x,
)

и я хочу избавиться от последней запятой, чтобы добраться до:

int foo(
  int x,
  int x,
  int x,
  int x
)

Я хотел бы нажать клавишу Esc и сделать так, чтобы моя каретка была сразу после этого последнего int x, .

1 ответ1

5

Я думаю, что это не команда по умолчанию в возвышенном тексте. Однако вы можете легко создать это поведение самостоятельно. Просто нажмите Tools >> New Plugin... и вставьте следующее:

import sublime_plugin


class SingleLastSelectionCommand(sublime_plugin.TextCommand):
    def run(self, edit):
        view = self.view
        if len(view.sel()):
            last = view.sel()[-1]
            view.sel().clear()
            view.sel().add(last)

Затем создайте привязку ключей:

{ "keys": ["escape"], "command": "single_last_selection", "context":
    [
        { "key": "num_selections", "operator": "not_equal", "operand": 1 }
    ]
},

Возможно, потребуется скопировать все escape-привязки из таблицы ключей по умолчанию, чтобы сохранить приоритет действия (скрыть автозаполнение перед удалением нескольких курсоров и т.д.).

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .