Sublime Text: escape de múltiplas seleções para a última região de seleção ao invés de primeiro

5

Em Sublime Text (usando o Sublime Text 3), você pode sair de um modo de seleção múltipla / múltipla pressionando a tecla Esc. Quando você fizer isso, apenas a primeira seleção / circunflexo permanecerá.

Existe uma maneira de fazer com que apenas a última seleção / circunflexo permaneça em seu lugar?

Muitas vezes me vejo em fuga, precisando mover meu cursor para o que costumava ser a última seleção.

Caso de uso:

Eu digito isso usando várias seleções:

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

e eu quero me livrar da última vírgula para chegar:

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

Gostaria de clicar na tecla Esc e ter o meu cursor bem depois do último int x, .

    
por ericcodes 09.03.2016 / 07:03

1 resposta

5

Acho que este não é um comando padrão no texto sublime. No entanto, você pode facilmente criar esse comportamento por conta própria. Apenas pressione Tools >> New Plugin... e cole o seguinte:

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)

Depois, crie uma associação de teclas:

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

Pode ser necessário copiar todos os atalhos de teclado de escape do mapa de teclas padrão para manter a precedência de ação (ocultar o preenchimento automático antes de remover vários cursores e assim por diante).

    
por 11.03.2016 / 10:50