Scorciatoie / frammenti per selezionare un blocco di codice


8

Sto usando SQL Server Management Studio 2016 su Windows 10. Sono stanco di usare i tasti Maiusc / Ctrl + Su / Giù / Destra / Sinistra per selezionare il codice che voglio eseguire. Mi chiedo se ci sono scorciatoie / snippet per selezionare un blocco di codice separato da un altro codice da righe vuote?

Ecco un esempio di codice:

select *
from tab1

select *
from tab2

select *
from tab3

Dì, il mio cursore si trova all'interno del blocco centrale e qual è il modo migliore per selezionare il blocco centrale?


1
JetBrains DataGrip (Ctrl + Invio). Anche economico. Anche UI scura.
Nelz,

Risposte:


4

Non sono affiliato a Red-Gate, ma vorrei sottolineare che se si preme Shift-F5, quando si possiede una copia nuovissima del prompt SQL, la query su cui si trova il cursore sarà contrassegnata in verde ed eseguita .

Mi ha davvero salvato un sacco di tasti.


Grazie mille per la tua risposta! Ho provato sql prompty ed è stato fantastico! Penserò di acquistarlo dopo il periodo di prova!
Jason,

1
Si noti che in realtà non seleziona il codice, in quanto non è possibile utilizzare questo metodo per copiare il blocco di codice che è stato eseguito.
Thomas Rushton,

4

Usando Autohotkey, sono stato in grado di sviluppare una soluzione per selezionare un blocco di codice ed ecco lo script che ho:

!b::

send ^f

sendraw ^\r$

send {F3}

send +{F3}

send {Esc}

send {down}

send ^{=}

return

In particolare, premendo Alt + B verrà richiamato questo script e lo script selezionerà il blocco di codice in cui si trova il cursore. Si noti che il blocco di codice deve essere separato da altri blocchi di codice da righe vuote e il blocco di codice non può avere spazi vuoti di linee al suo interno.

I passaggi chiave dello script about sono

  • usando l'espressione regolare "^ \ r $" per localizzare le righe vuote sopra e sotto il cursore

  • spostando il cursore su queste due righe vuote una per una

  • usando ctrl + = per selezionare il blocco di codice tra queste due righe vuote.

Nota che! / ^ / + Sono alt / ctrl / shift separatamente.


Non sapevo che avresti potuto farlo con AutoHotKey. Molto meno costoso di SQL Prompt. Grazie per la pubblicazione.
Henrik Staun Poulsen,

3

Un modo per selezionare rapidamente blocchi di codice all'interno di SSMS è minimizzare il codice utilizzando il -pulsante accanto alla parola chiave principale in un'istruzione SQL (ad esempio SELECT, UPDATE, DELETE, WITH, ecc.) Quindi evidenziare quella riga e premere F5per eseguirla.

inserisci qui la descrizione dell'immagine

A seconda della versione di SSMS (le versioni più recenti sono ovviamente preferite in questo caso), ci sono anche alcune scorciatoie da tastiera che puoi usare per comprimere / espandere una sezione. Il collegamento di scelta rapida fornito dalla precedente risposta di Simon Hellings allude ai tasti di scelta rapida già impostati, ma non posso confermare che funzionino effettivamente. Tuttavia, è possibile impostare alcuni tasti di scelta rapida personalizzati per fare ciò come segue:

  1. Le funzioni di cui ci occupiamo a impostare i tasti di scelta rapida sono disponibili in Edit-> OutliningOpzioni di menu: inserisci qui la descrizione dell'immagine

  2. Per impostare i tasti di scelta rapida, selezionare Tools-> Options...-> Environment-> Keyboard-> Keyboard. Digitare Outlinnei comandi Mostra contenenti: scatola. Quindi assegnare un nuovo combinazioni di tasti di scelta rapida per Edit.ToggleAllOutlininge Edit.ToggleOutliningExpansione premere Assign: inserisci qui la descrizione dell'immagine

  3. Ora, controlla le scorciatoie prese dopo aver premuto Ok e i tasti di scelta rapida dovrebbero funzionare come previsto. Come puoi vedere, ho assegnato il mio a CTRL+ALT+Left Arrowe CTRL+ALT+Right Arrow, ma puoi usare quello che vuoi: inserisci qui la descrizione dell'immagine

Infine, se non funziona, potrebbe essere necessario passare a un altro client SQL. Sembra che la funzionalità desiderata sia simile all'esecuzione di un blocco Oracle PL / SQL tramite CTRL + ENTEROracle SQL Developer. È possibile utilizzare Oracle SQL Developer per connettersi a SQL Server utilizzando i driver JDBC del database di terze parti ( rif ), ma non lo consiglio.


Sì, questo da solo è una ragione sufficiente per installare Toad e usare F9. Toad ha una sua serie di stranezze però.
crokusek,

Grazie per la tua risposta! Come posso piegare il nodo dell'albero senza usare il mouse?
Jason

@Jason - Ho aggiornato la mia risposta con le scorciatoie da tastiera. Avrai bisogno di una versione più recente di SSMS, poiché questa funzionalità non era disponibile su tutte le versioni come indicato dal collegamento URL che ho fornito.
John Eisbrener,

@JohnEisbrener, grazie per il tuo aiuto e li controllerò!
Jason

@JohnEisbrener, stavo provando a provare la nuova scorciatoia da tastiera che mi hai suggerito e nessuno di loro funziona per me. Sto usando la versione più recente di SSMS, che è la versione 13.0.16106.4. Li hai mai testati da soli?
Jason

2

Non utilizzare affatto i tasti up/ down/ right/ leftper selezionare il codice da eseguire.

Supponendo che sia possibile utilizzare un mouse per computer, procedere come segue:

  1. Usa il mouse del tuo computer per spostare il cursore sul primo carattere da includere.
  2. Avanti Tieni premuto e continua a tenere premuto il Ctrltasto, quindi sposta il mouse per includere l'ultimo carattere da includere.
  3. Continua a tenere premuto il Ctrltasto, quindi premi il Etasto che eseguirà il testo evidenziato.

Se si desidera eliminare il codice appena eseguito, è necessario continuare a tenere premuto il Ctrltasto e quindi premere il Deletetasto.

Suppongo sia possibile che qualcuno abbia creato uno strumento per farlo automaticamente.


Grazie per la tua risposta! So come usare ctrl / shift con il mouse per selezionare il codice e ritengo che sia un po 'lento rispetto ai tasti di scelta rapida / snippet. Sei a conoscenza di tasti di scelta rapida / snippet che possono selezionare il codice automaticamente?
Jason

4
@RLF, assegnerò alla tua risposta un voto positivo per la traina riuscita (intenzionale o no, non importa.)
Daniel Hutmacher,

1

Non penso che sia possibile. Vedi l'elenco completo delle scorciatoie predefinite predefinite qui . Puoi personalizzare qualcosa dagli strumenti -> menu opzioni


Grazie per la tua risposta! Se i tasti di scelta rapida non sono possibili, sei a conoscenza di frammenti per questo?
Jason

Non che mi
venga in
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.