Sublime Text 3 - Comportamento di aggiunta / ricerca rapida


14

Supponiamo che io stia lavorando con un file in Sublime Text 3 che contiene più occorrenze di una singola variabile di carattere c, che desidero rinominare con un altro nome.

Quando seleziono un'istanza di quella variabile con il mio cursore, Sublime Text evidenzia automaticamente le altre istanze di quella variabile:

Questo highlight visivo è abilitato dall'impostazione:, "match_selection": truee mostra chiaramente che il sublime è abbastanza intelligente da evidenziare solo altre istanze di quel personaggio dove è rilevante come variabile.

Tuttavia, nonostante questo punto culminante indichi che dovrebbe essere possibile, sembra che non ci sia un modo semplice per selezionare automaticamente solo queste cvariabili evidenziate .

Se voglio rinominare rapidamente tutte le istanze della variabile cusando più cursori, con Quick Add Next ( cmd+D) o Quick Find All ( ctrl+cmd+G) invece di selezionare solo quella variabile c, ottengo ogni singola istanza del carattere 'c' selezionata:

Questo ovviamente non è affatto utile, poiché non ha alcuna correlazione con la variabile effettiva; Ha semplicemente selezionato alla cieca tutte le lettere "c", indipendentemente dal fatto che siano o meno la variabile selezionata.

Esiste un modo per forzare Aggiunta rapida successiva e Ricerca rapida tutto per comportarsi come le regole di evidenziazione match_selectionutilizzate dall'impostazione? Ciò sarebbe molto più utile in questo caso che semplicemente selezionare ciecamente ogni istanza dei personaggi selezionati.

Mi sto perdendo qualcosa? Non riesco a trovare un'opzione Ricerca rapida per tutte le istanze o Aggiunta rapida successiva , né alcun modo per personalizzare il comportamento predefinito di Ricerca rapida tutto e Aggiunta rapida successiva . Per quanto ne so, le mie uniche opzioni sono o rinominare manualmente ogni istanza co scrivere un regex personalizzato per ottenere lo stesso risultato dell'algoritmo di evidenziazione originale.

Risposte:


23

Il trucco è iniziare con una selezione vuota, con il cursore appena a sinistra della parola che si desidera selezionare. Quindi, premi CtrlG(o AltF3su Windows / Linux) per selezionare tutte le istanze di quella parola:

codice lua

o premi D( CtrlDsu Win / Lin) per iniziare a selezionarli uno alla volta.


1
Fondamentalmente esattamente quello che stavo cercando, evviva :) -
Johannes,

Funziona se li vuoi tutti in un file; Voglio solo tutti quelli che sono vicini, come si ottiene con Ctrl + D.
Ben Dilts,

@BenDilts Non sono sicuro di quello che stai chiedendo. Cosa stai cercando di fare?
MattDMo

Supponi di avere un file con dieci metodi diversi, ognuno dei quali ha una variabile locale denominata "c". Voglio solo selezionare rapidamente quelli in un'area più piccola dell'intero file.
Ben Dilts,

2
@BenDilts Posiziona il cursore a sinistra del primo e seleziona quelli che desideri utilizzare Ctrl-D, proprio come ho detto nella mia risposta.
MattDMo

0

Quando si selezionano e rinominano tutte le occorrenze di una variabile, ciò non implica che tutte le stringhe debbano essere rinominate. Ad esempio 'c' può apparire in molte parole, non essendo variabili. Per rinominare SOLO le occorrenze che sono variabili è possibile utilizzare il componente aggiuntivo anaconda:

Fare clic con il tasto destro del mouse sulla variabile

Seleziona Anaconda -> Rinomina oggetto sotto il cursore

Ps. Si può fare doppio clic sulla variabile per verificare quale sarebbe la selezione prima di eseguire la ridenominazione.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.