Sublime Text 3 - Comportamento Quick Add / Find Match

13

Suponha que estou trabalhando com um arquivo no Sublime Text 3 que contém vários ocorrências de uma única variável de caractere, c , que desejo renomear para outro nome.

Quando seleciono uma instância dessa variável com o cursor, o Sublime Text destaca automaticamente as outras instâncias dessa variável para mim: link

Esse destaque visual é ativado pela configuração: "match_selection": true , e mostra claramente que o sublime é inteligente o suficiente para destacar apenas outras instâncias desse caractere onde ele é relevante como uma variável.

No entanto, apesar de esse destaque indicar que deve ser possível, parece que não há uma maneira fácil de selecionar automaticamente apenas essas variáveis c destacadas.

Se eu quiser renomear rapidamente todas as instâncias da variável c usando vários cursores, com Quick Add Next ( cmd+D ) ou Localizar todos rapidamente ( ctrl+cmd+G ) em vez de selecionar apenas essa variável c , recebo todas as instâncias do caractere 'c' selecionado: link

Isso obviamente não é útil, pois não tem correlação com a variável real; Apenas selecionou cegamente todas as letras "c", independentemente de serem ou não a variável selecionada.

Existe uma maneira de forçar Quick Add Next e Quick Find All a se comportar como as regras de realce que a configuração match_selection usa? Isso seria muito mais útil nesse caso do que simplesmente selecionar cegamente todas as instâncias do (s) caractere (s) selecionado (s).

Estou faltando alguma coisa? Não consigo encontrar uma opção Localização rápida de todas as instâncias ou opção Adicionar rápida próxima variável , ou qualquer outra forma de personalizar o comportamento padrão de Localizar tudo rapidamente e Quick Add Next . Até onde eu sei, minhas únicas opções são renomear manualmente cada instância de c ou escrever alguma regex personalizada para obter o mesmo resultado que o algoritmo de realce original.

    
por Johannes 16.04.2014 / 14:34

2 respostas

21

O truque é começar com uma seleção vazia, com o cursor apenas à esquerda da palavra que você deseja selecionar. Em seguida, tecle Ctrl G (ou Alt F3 no Windows / Linux) para selecionar todas as ocorrências dessa palavra:

ou tecle D ( Ctrl D no Win / Lin) para começar a seleciona-los um de cada vez tempo.

    
por 19.04.2014 / 19:05
0

Ao selecionar e renomear todas as ocorrências de uma variável, isso não significa que todas as strings devem ser renomeadas. Por exemplo, 'c' pode ocorrer em muitas palavras, não sendo variáveis. Para SOMENTE renomear as ocorrências que são variáveis, pode-se usar o add-on anaconda:

Right-mouse-click the variable

Select Anaconda -> Rename Object under cursor

Ps. One can Double-click the variable to check what the selection would be before executing the renaming.

    
por 04.02.2017 / 11:58