Com augmentar la productivitat amb fragments de text sublims


En resum, recentment em van assignar un projecte en el meu treball on he de crear molts scripts bash. Sóc d'origen Python i faig servir Jupyter Notebook per a tot el meu treball de desenvolupament. El problema amb els scripts bash per a mi és el seu ús confús de parèntesis i el bloc repetitiu de codis a tots els meus scripts.

Fins a aquest moment, feia servir SUBLIME TEXT 3 com a editor de referència per a bash i altres llenguatges de programació. Vaig crear molts fragments per a funcions repetitives, línies d'una sola línia i blocs de control per a scripts bash que no només van estalviar temps, sinó que també van millorar la meva productivitat.

Els fragments són una característica/funcionalitat de programació popular que s'envia amb molts editors IDE moderns. Podeu pensar en els fragments com una plantilla que es pot reutilitzar sempre que sigui necessari. Els fragments no estan restringits a llenguatges de programació concrets. Simplement podeu crear un fragment nou, afegir qualsevol text que vulgueu inserir i assignar una paraula activa. Veurem totes aquestes característiques a la propera secció.

Per llistar fragments definits en text sublim

Per defecte, el text sublim s'envia amb alguns fragments predefinits per al bash. Mostrarà els fragments de manera intel·ligent en funció del fitxer actual del qual estem cercant el fragment. Estic dins d'un script d'intèrpret d'ordres i quan invoco la paleta d'ordres i el fragment de codi, proporciona automàticament una llista de fragments definits per al bash.

Hi ha dues maneres d'accedir als fragments a Sublime Text.

  1. CONDUCT EL MENÚ ⇒ TEXT SUBLIME → EINES → FRAGMENTS
  2. PALETA D'ORDANCES ⇒ TEXT SUBLIME → PALETA D'ORDANCES (CTRL+MAJ+P) → TIPUS DE FRAGMENTS

Creeu un nou fragment en text sublim

El text sublim proporciona una plantilla predeterminada en format XML quan creem un nou fragment. Per crear la plantilla, heu de TEXT SUBLIME → EINES → DESENVOLUPADOR → NOU SNIPPET.

Entenem la definició de la plantilla i modifiquem els paràmetres.

  • El contingut real o bloc de codi que s'ha d'inserir s'ha de col·locar a . Vaig a crear un fragment per al comentari de la capçalera. Cada script que creeu tindrà un comentari de capçalera que defineix la informació sobre l'script, com ara el nom de l'autor, la data de creació, el número de versió, la data de desplegament, etc.
  • Tabtrigger (opcional) que enllaça un TEXT que actua com a activador del fragment. Quan s'escriu el nom de l'activador i premeu TAB, s'inserirà el fragment. Es comenta per defecte, elimina el comentari i afegeix text per al disparador. Trieu un nom descriptiu i curt. Per exemple: Estic escollint \hcom per inserir comentaris de capçalera. Pot ser qualsevol que escolliu.
  • L'àmbit d'aplicació (opcional) defineix a quin idioma s'uneixen els fragments. Podeu treballar amb 2 o 3 llenguatges de programació diferents alhora i podeu utilitzar el mateix nom per a diferents fragments de diferents llenguatges de programació. En aquest cas, l'abast controla en quin idioma s'ha d'inserir el fragment per evitar així la col·lisió. Podeu obtenir la llista d'àmbits a l'enllaç. Alternativament, podeu anar a EINES → DESENVOLUPADOR → MOSTRA EL NOM DE L'AMBIT o Premeu per obtenir el nom de l'àmbit de l'idioma que feu servir.
  • La descripció (opcional) no estarà disponible a la plantilla predeterminada, però la podeu utilitzar per definir algun context sobre què fa aquest fragment.

Ara hem fet algunes coses bàsiques. Hem definit un fragment que inserirà un comentari de capçalera senzill que s'enllaça amb l'activador de la pestanya \hcom i s'obté a l'script de shell.

Ara obrim un nou fitxer bash i escriviu hcom. Si mireu la imatge següent quan escriu h, la meva definició de fragment apareix amb la descripció que vam donar. Tot el que he de fer és prémer la tecla <tab> per ampliar-lo.

Els camps es denoten utilitzant $1, $2, $3 i així successivament. Amb l'ajuda del camp, podeu saltar a la posició on es col·loca el marcador de camp simplement prement la tecla <tab>.

Si mireu el meu fragment, he afegit dos marcadors de camp $1 i $2, el que fa és quan inserir el meu fragment el cursor es col·locarà a $1 perquè pugui escriure alguna cosa en aquesta posició.

Aleshores he de prémer la tecla <tab> per saltar al següent marcador $2 i escriure alguna cosa. Cal tenir en compte que quan teniu qualsevol marcador idèntic, digueu $1 en aquest cas a 2 posicions, l'actualització del camp en una posició actualitzarà els camps idèntics ($1).

    Tecla
  • <tab> → Anar al marcador de camp següent.
  • Tecla
  • → Anar al marcador de camp anterior.
  • Tecla
  • → Trenca el cicle de camp.
  • $0 → Controla el punt de sortida.

Els marcadors de posició són com un parell clau-valor definit entre claus $ {0:}; el marcador de camp s'etiquetarà amb un valor predeterminat. Podeu canviar el valor o deixar-lo tal com està. Quan s'insereix el fragment i si premeu la pestanya, el cursor es col·locarà al valor predeterminat.

Ara s'insereix el fragment amb el valor predeterminat i el ratolí es col·loca a $1 que és v1 en aquest cas. O puc modificar el valor o simplement premeu la tecla <tab> per passar al marcador següent.

L'únic inconvenient dels fragments de text Sublime és que no podeu agrupar tots els fragments en un sol fitxer. Només es permet un fragment per fitxer, cosa que és feixuga. Però hi ha altres opcions com la creació de fitxers .sublime-completion. Per saber més sobre això, feu una ullada a la documentació.

Els fitxers de fragments s'han de desar amb el sufix .sublime-snippet. Vés a PREFERÈNCIES → EXPLORAR PAQUETS. Obrirà el directori on s'emmagatzemen la configuració definida per l'usuari. Aneu al directori \Usuari on es desarà el vostre fitxer de fragments.

VSCode. Escriviu la descripció, l'activador de la pestanya i el contingut al costat esquerre, que generarà codi en directe al costat dret de la pàgina.

Fragment de mostra que obtindrà el nom del clúster de l'API Ambari.

Això és tot per avui. Hem vist els avantatges d'utilitzar fragments en text sublim. Acabo d'utilitzar un pseudotext senzill com a exemple per demostrar la funció de fragments, però hi ha molt més. També voldria assenyalar que aquesta funció està disponible a tots els editors/IDE com Vim, Atom, Eclipse, Pycharm, Vscode, etc.