Texto sublime 3 - Comportamento rápido de adicionar / localizar correspondência

14

Suponha que eu esteja trabalhando com um arquivo no Sublime Text 3 que contém várias 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 meu cursor, o Sublime Text destaca automaticamente as outras instâncias dessa variável para mim:

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

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

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

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

Existe uma maneira de forçar o Quick Add Next e o Quick Find All a se comportarem como as regras de destaque match_selectionusadas pela configuração? Isso seria muito mais útil nesse caso do que simplesmente selecionar cegamente todas as ocorrências dos caracteres selecionados.

Estou esquecendo de algo? Não consigo encontrar a opção Pesquisa rápida de todas as instâncias ou Variável de adição rápida próxima ou qualquer maneira de personalizar o comportamento padrão de Pesquisa rápida de todas e Pesquisa rápida seguinte . Tanto quanto posso dizer, minhas únicas opções são renomear manualmente todas as instâncias cou escrever alguma regex personalizada para obter o mesmo resultado que o algoritmo de destaque original.

Johannes
fonte

Respostas:

23

O truque é começar com uma seleção vazia, com o cursor à esquerda da palavra que você deseja selecionar. Em seguida, pressione CtrlG(ou AltF3no Windows / Linux) para selecionar todas as instâncias dessa palavra:

código lua

ou pressione D( CtrlDno Win / Lin) para começar a selecioná-los um de cada vez.

MattDMo
fonte
1
Basicamente exatamente o que eu estava procurando, cheers :) -
Johannes
Isso funciona se você quiser todos eles em um arquivo; Eu só quero todos os que estão próximos, como você obtém com Ctrl + D.
precisa saber é o seguinte
@ BenDilts Não sei bem o que você está perguntando. O que você está tentando fazer?
MattDMo
Digamos que você tenha um arquivo com dez métodos diferentes, cada um dos quais com uma variável local denominada "c". Eu só quero selecionar rapidamente aqueles em uma área menor que o arquivo inteiro.
precisa saber é o seguinte
2
@ BenDilts Coloque o cursor à esquerda do primeiro e selecione os que deseja usar Ctrl-D, como eu disse na minha resposta.
precisa saber é o seguinte
0

Ao selecionar e renomear todas as ocorrências de uma variável, isso não implica que todas as seqüências sejam renomeadas. Por exemplo, 'c' pode ocorrer em muitas palavras, não sendo variáveis. Para renomear SOMENTE as ocorrências que são variáveis, pode-se usar o complemento anaconda:

Clique com o botão direito do mouse na variável

Selecione Anaconda -> Renomear Objeto no cursor

Ps. Pode-se clicar duas vezes na variável para verificar qual seria a seleção antes de executar a renomeação.

Leo
fonte