Ricerca nel sito web

Come aumentare la produttività con frammenti di testo sublimi


Per farla breve, recentemente mi è stato assegnato un progetto nel mio lavoro in cui devo creare molti script bash. Provengo da Python e utilizzo Jupyter Notebook per tutto il mio lavoro di sviluppo. Il problema con gli script bash per me è l'utilizzo confuso delle parentesi e il blocco ripetitivo di codici in tutti i miei script.

Fino a quel momento utilizzavo l'editor Nano per creare script bash. Nano fornisce alcune funzionalità di base come editor di terminale ma non oltre un certo punto. Quindi ho fatto le mie ricerche e ho selezionato "SUBLIME TEXT 3" come editor di riferimento per bash e altri linguaggi di programmazione. Ho creato molti snippet per funzioni ripetitive, battute e blocchi di controllo per script bash che non solo hanno risparmiato tempo ma hanno anche migliorato la mia produttività.

Cos'è lo snippet?

Gli snippet sono una caratteristica/funzionalità di programmazione popolare fornita con molti editor di testo moderni o editor IDE. Puoi pensare agli snippet come a un modello che può essere riutilizzato quando necessario. Gli snippet non sono limitati a particolari linguaggi di programmazione. Puoi semplicemente creare un nuovo snippet, aggiungere il testo che desideri inserire e assegnare una parola trigger. Vedremo tutte queste funzionalità nella prossima sezione.

Per elencare frammenti definiti in testo sublime

Per impostazione predefinita, il testo sublime viene fornito con alcuni snippet predefiniti per la bash. Visualizzerà in modo intelligente gli snippet in base al file corrente da cui stiamo cercando lo snippet. Sono all'interno di uno script di shell e quando invoco il comando pallet e digito snippet, fornisce automaticamente un elenco di snippet definiti per bash.

Esistono due modi per accedere agli snippet in Sublime Text.

  1. GESTITO DA MENU ⇒ TESTO SUBLIME → STRUMENTI → SNIPPET
  2. TAVOLOZZA COMANDI ⇒ TESTO SUBLIME → TAVOLOZZA COMANDI (CTRL+MAIUSC+P) → DIGITA SNIPPET

Crea un nuovo snippet in testo sublime

Il testo Sublime fornisce un modello predefinito in formato XML quando creiamo un nuovo snippet. Per creare il modello devi selezionare SUBLIME TESTO → STRUMENTI → SVILUPPATORE → NUOVO SNIPPET.

Comprendiamo la definizione del modello e modifichiamo i parametri.

  • Il contenuto effettivo o il blocco di codice da inserire deve essere inserito all'interno di . Creerò uno snippet per "commento nell'intestazione". Ogni script creato avrà un commento di intestazione che definisce le informazioni sullo script come nome dell'autore, data di creazione, numero di versione, data di distribuzione, ecc.
  • Tabtrigger (facoltativo) che associa un "TEXT" che funge da trigger per lo snippet. Quando viene digitato il nome del trigger e si preme il tasto "TAB", lo snippet verrà inserito. È commentato per impostazione predefinita, rimuovi il commento e aggiungi del testo per il trigger. Scegli un nome descrittivo e breve. Ad esempio: sto scegliendo "hcom" per inserire commenti nell'intestazione. Può essere qualsiasi cosa a tua scelta.
  • Ambito (facoltativo) definisce a quale lingua sono collegati i tuoi snippet. Potresti lavorare con 2 o 3 linguaggi di programmazione diversi alla volta e potresti utilizzare lo stesso nome per snippet diversi in diversi linguaggi di programmazione. In tal caso l'ambito controlla in quale lingua deve essere inserito lo snippet per evitare così la collisione. È possibile ottenere l'elenco degli ambiti da Link. In alternativa, puoi andare su STRUMENTI → SVILUPPATORE → MOSTRA NOME AMBITO o premere per ottenere il nome dell'ambito della lingua che stai utilizzando.
  • La Descrizione (facoltativa) non sarà disponibile nel modello predefinito ma puoi utilizzarla per definire un contesto su ciò che fa questo snippet.

Ora abbiamo fatto alcune cose di base. Abbiamo definito uno snippet che inserirà un semplice commento di intestazione che si collega al trigger della scheda "hcom" e proviene dallo script della shell.

Ora apriamo un nuovo file bash e "digita hcom". Se guardi l'immagine qui sotto quando "digito h" viene visualizzata la definizione del mio snippet con la descrizione che abbiamo fornito. Tutto quello che devo fare è premere il tasto <tab> per espanderlo.

Campi

I campi sono indicati utilizzando $1, $2, $3 e così via. Con l'aiuto del campo, puoi saltare alla posizione in cui è posizionato l'indicatore del campo semplicemente premendo il tasto <tab>.

Se dai un'occhiata al mio snippet, ho aggiunto due indicatori di campo $1 e $2, ciò che fa è quando inserisco il mio snippet il cursore verrà posizionato su $1 così posso digitare qualcosa in quella posizione.

Quindi devo premere il tasto <tab> per passare al marcatore successivo $2 e digitare qualcosa. È da notare che quando hai un marcatore identico, ad esempio $1 in questo caso in 2 posizioni, l'aggiornamento del campo in una posizione aggiornerà i campi identici ($1).

  • Tasto <tab> → Passa al marcatore di campo successivo.
  • Tasto → Passa al marcatore di campo precedente.
  • Tasto → Ciclo di uscita dal campo.
  • $0 → Controlla il punto di uscita.

Segnaposto

I segnaposto sono come una coppia chiave-valore definita tra parentesi graffe $ {0:}; l'indicatore di campo verrà contrassegnato con un valore predefinito. Puoi modificare il valore o lasciarlo così com'è. Quando lo snippet viene inserito e se si preme la scheda il cursore verrà posizionato sul valore predefinito.

Ora lo snippet viene inserito con il valore predefinito e il mouse viene posizionato su $1 che in questo caso è v1. O posso modificare il valore o semplicemente premere <tab> il tasto per passare al marcatore successivo.

L'unico inconveniente degli snippet di Sublime Text è che non puoi raggruppare tutti gli snippet in un singolo file. È consentito un solo snippet per file, il che è complicato. Ma ci sono altre opzioni come la creazione di file .sublime-completion. Per saperne di più, dai un'occhiata alla documentazione.

Dove viene archiviato il mio file di snippet?

I file snippet devono essere salvati con il suffisso .sublime-snippet. Vai su PREFERENZESFOGLIA PACCHETTI. Si aprirà la directory in cui sono memorizzate le impostazioni definite dall'utente. Vai alla directory "Utente" in cui verrà salvato il file dello snippet.

Generatore di frammenti

Snippet-generator-app fornisce la generazione automatica di snippet basata sul web in base al nostro input. È disponibile per Sublime Text, Atom e VSCode. Digita la descrizione, il trigger della scheda e il contenuto sul lato sinistro che genererà il codice live sul lato destro della pagina.

Snippet di esempio che otterrà il nome del cluster dall'API Ambari.

È tutto per oggi. Abbiamo visto i vantaggi dell'utilizzo di snippet nel testo sublime. Ho appena utilizzato un semplice pseudo testo come esempio per dimostrare la funzionalità degli snippet, ma c'è molto di più. Vorrei inoltre sottolineare che questa funzionalità è disponibile in tutti gli editor/IDE come Vim, Atom, Eclipse, Pycharm >, Vscode, ecc.