2013-01-10 6 views
12

Mi chiedo se esiste già un modo per espandere la selezione a tutte le aree suggerite dalle caselle Sublime Text 2, quindi non è necessario continuare a premere Ctrl - D e talvolta Ctrl - K - D come mostrato nella How do I skip a match when using Ctrl+D for multiple selections in Sublime Text 2?Espandi selezione multipla a tutti i suggerimenti (caselle, suggerimenti) in Sublime Text 2

il 90% del tempo di caselle sullo schermo sono esattamente quello che voglio a selezione multipla, e sarebbe molto utile se c'era una sola opzione chiave per farlo.

per esempio, se si dispone di

foo(2,42,23,2,2) 

e si fa clic sul primo 2, le caselle verranno mostrati intorno solo i tre singoli 2s. Questi vorrei selezionare con un singolo comando/macro.

Se si va con Ctrl - D dovete saltare le 2s nel 42 e 23 con Ctrl - K - D.

Se non esiste nulla di simile, qualsiasi suggerimento sulla scrittura di un plug-in per tale funzionalità sarebbe molto apprezzato.

UPDATE: ho ottenuto un ottimo suggerimento di utilizzare Alt +F3, che è impressionante per fare cambiamenti nel l'intero file. Tuttavia, sarebbe anche utile limitare l'ambito di selezione multipla alla pagina visibile corrente o tag o parentesi o qualcos'altro.

risposta

8

ho fatto la seguente, per questi casi:

porre voce nel Key bindings - User:

{ "keys": ["alt+s"], "command": "toggle_in_selection", "context": 
    [ 
     { "key": "setting.is_widget", "operator": "equal", "operand": true } 
    ] 
}, 

Nota: è possibile scegliere un'altra combinazione di tasti.

Poi, selezionare il testo che si desidera effettuare la ricerca. È possibile utilizzare ctrl+L per selezionare una riga, ctrl+shift+m per selezionare il contenuto di staffe siete in, o in qualsiasi altro modo elencati nel Selection menù, o in qualsiasi altro modo completamente.


SUGGERIMENTO: Fare nuovo file, scegliere il nome del file User.sublime-commands e memorizzarlo che Packages/User cartella in cui sono memorizzati nuovi plugin o user--combinazioni di tasti.E mettere questo frammento in quel file:

[ 
    // Selection Menu 
    { "caption": "Selection: Expand to Paragraph", "command": "expand_selection_to_paragraph" }, 
    { "caption": "Selection: Expand to Scope", "command": "expand_selection", "args": {"to": "scope"} }, 
    { "caption": "Selection: Expand to Brackets", "command": "expand_selection", "args": {"to": "brackets"} }, 
    { "caption": "Selection: Expand to Indentation", "command": "expand_selection", "args": {"to": "indentation"} }, 
    { "caption": "Selection: Expand to Tag", "command": "expand_selection", "args":  {"to": "tag"} } 
] 

Si aggiungerà quelle opzioni espandere-selezione, che si trovano in Selection menù, nella palette di comando come pure, in modo non c'è bisogno di ricordare le scorciatoie. Puoi cambiare "sottotitoli" in base alle tue esigenze.


Una volta selezionato il testo che si desidera cercare, premere ctrl+f o ctrl+i (ricerca o ricerca incrementale), usa il collegamento dall'alto, per rendere la "in-selezione" Pulsante toggled (sesto pulsante da sinistra lato sulla barra di ricerca, assomiglia a una freccia che punta a destra e in basso sulla barra verticale). (facoltativo: premere alt + w per attivare il pulsante "parole intere" (assomiglia alle virgolette), nel caso in cui si desideri abbinare gratuitamente 2 in foo(2,42,23,2,2) e non corrispondere a 2 in 42). Una volta che la tua selezione è ottimizzata, alt+enter seleziona tutte le corrispondenze -> done.

Non è necessario scrivere ciò che si desidera cercare, è possibile selezionarlo prima e premere ctrl+e (comando "slurp_find_string") per inserirlo nella barra di ricerca e aprire la barra di ricerca in un secondo momento e sarà lì .

Così il processo complessivo va come:

  1. (opzionale) ctrl+e sul testo selezionato che si desidera cercare, quindi non c'è bisogno di scrivere in un secondo momento
  2. usare qualsiasi modo per selezionare tutto il testo che si desidera cercare in
  3. ctrl+f o ctrl+i per aprire una barra di ricerca, se non hai fatto 1., scrivere quello che si cerca in
  4. ginocchiera in-selezione, se non attivata, passare intere parole-se voglio
  5. trovare tutti con alt+enter e il gioco è fatto

suona un po 'complicato all'inizio, ma una volta che lo fai 10 volte, l'intero processo (ad eccezione del punto 2.) non ci vorrà più di un secondo. Inoltre, se modifichi alcune impostazioni sublimi, puoi attivarle automaticamente, ad esempio auto ctrl + e su qualsiasi selezione o selezione automatica della selezione ogni volta che apri la barra di ricerca con la selezione aperta.

NOTA: i collegamenti potrebbero essere diversi se si utilizza mac o windows.

Speranza che aiuta, se c'è qualcosa di poco chiaro, chiedere di più ...

EDIT: Stavo giocando con le impostazioni chiave per un po ', e si è conclusa con questo:

// without whole-words 
{ "keys": ["ctrl+space", "f"], "command": "show_panel", "args": {"panel": "incremental_find", "reverse":false, "in_selection": false, "whole_word": false}, "context": 
    [ 
     { "key": "selection_empty", "operator": "equal", "operand": true, "match_all": true } 
    ] 
}, 
{ "keys": ["ctrl+space", "f"], "command": "show_panel", "args": {"panel": "incremental_find", "reverse":false, "in_selection": true, "whole_word": false}, "context": 
    [ 
     { "key": "selection_empty", "operator": "equal", "operand": false, "match_all": true } 
    ] 
}, 

//with whole-words 
{ "keys": ["ctrl+space", "w"], "command": "show_panel", "args": {"panel": "incremental_find", "reverse":false, "in_selection": false, "whole_word": true}, "context": 
    [ 
     { "key": "selection_empty", "operator": "equal", "operand": true, "match_all": true } 
    ] 
}, 
{ "keys": ["ctrl+space", "w"], "command": "show_panel", "args": {"panel": "incremental_find", "reverse":false, "in_selection": true, "whole_word": true}, "context": 
    [ 
     { "key": "selection_empty", "operator": "equal", "operand": false, "match_all": true } 
    ] 
}, 

Se mettilo da qualche parte in Key bindings - User, ti dà due scorciatoie, "ctrl+space", "f" (ctrl+space prima, seguito da f, simile a "ctrl+k", "ctrl+d") e "ctrl+space", "w". Il primo fornisce il pannello di ricerca incrementale con parole intere disabilitate, il secondo con parole intere abilitate. Entrambi saranno selezionati in base alla selezione se hai selezionato qualcosa quando hai premuto il tasto di scelta rapida. Se lo guardi, dovresti praticamente avere l'idea di come adattarlo ai tuoi desideri.

+0

Grazie, mi hai dato una buona idea su cosa cercare quando fai i miei binding di tasti. – Sint

12

È possibile fare clic prima o dopo ogni '2' e quindi selezionare tutte le 2 di con Atl + F3 su Windows e Linux o Ctrl + + G su OS X.

+0

Questo è fantastico! Uno svantaggio è che Alt + F3 seleziona TUTTE le partite particolari nel documento, quindi è molto pericoloso da usare.Un modo per limitare l'ambito di essere più locale (la pagina visibile sarebbe la migliore, parentesi, tag e così via)? – Sint

+0

@Sint L'unico modo che conosco è di utilizzare Trova tutto con "Parola intera" e "Selezione in corso", ma penso che sia possibile farlo con una singola scorciatoia. (Senza scrivere una specie di plugin ovviamente) – Stals

+0

grazie ancora, la tua risposta mi ha già salvato tempo! – Sint