Pesquisa de site

Como aumentar a produtividade com trechos de texto sublimes


Resumindo, recentemente fui designado para um projeto em meu trabalho onde tenho que criar muitos scripts bash. Tenho experiência em python e uso o Jupyter Notebook para todo o meu trabalho de desenvolvimento. O problema com os scripts bash para mim é o uso confuso de colchetes e o bloco repetitivo de códigos em todos os meus scripts.

Até aquele ponto, eu estava usando o editor Nano para criar scripts bash. Nano fornece alguns recursos básicos como editor de terminal, mas não além de certo ponto. Então fiz minha pesquisa e selecionei “SUBLIME TEXT 3” como meu editor preferido para bash e outras linguagens de programação. Criei muitos snippets para funções repetitivas, one-liners e blocos de controle para scripts bash, o que não apenas economizou tempo, mas também melhorou minha produtividade.

O que é trecho?

Snippets são um recurso/funcionalidade de programação popular fornecido com muitos editores de texto modernos ou editores IDE. Você pode pensar nos snippets como um modelo que pode ser reutilizado sempre que necessário. Os snippets não estão restritos a linguagens de programação específicas. Você pode simplesmente criar um novo snippet, adicionar qualquer texto que deseja inserir e atribuir uma palavra-gatilho. Veremos todos esses recursos na próxima seção.

Para listar trechos definidos em texto sublime

Por padrão, o texto sublime vem com alguns trechos predefinidos para o bash. Ele exibirá os snippets de maneira inteligente com base no arquivo atual do qual estamos procurando o snippet. Estou dentro de um shell script e quando invoco o comando pallet e digito snippet, ele fornece automaticamente uma lista de trechos definidos para o bash.

Existem duas maneiras de acessar trechos no Sublime Text.

  1. ORIENTADO POR MENU ⇒ TEXTO SUBLIME → FERRAMENTAS → SNIPPETS
  2. PALETA DE COMANDO ⇒ TEXTO SUBLIME → PALETA DE COMANDO (CTRL+SHIFT+P) → TIPO SNIPPETS

Crie novos trechos em texto sublime

O texto Sublime fornece um modelo padrão em formato XML quando criamos um novo snippet. Para criar o template acesse SUBLIME TEXT → TOOLS → DEVELOPER → NEW SNIPPET.

Vamos entender a definição do modelo e modificar os parâmetros.

  • O conteúdo ou bloco de código real a ser inserido deve ser colocado em . Vou criar um snippet para “comentário de cabeçalho“. Cada script que você criar terá um comentário no cabeçalho definindo as informações sobre o script, como nome do autor, data de criação, número da versão, data de implantação, etc.
  • Tabtrigger (opcional) que vincula um “TEXTO” que atua como um gatilho para o snippet. Quando o nome do trigger for digitado e você pressionar “TAB“, o snippet será inserido. Ele é comentado por padrão, remova o comentário e adicione algum texto para o gatilho. Escolha um nome descritivo e curto. Por exemplo: estou escolhendo “hcom” para inserir comentários no cabeçalho. Pode ser qualquer coisa de sua escolha.
  • Escopo (opcional) define a qual idioma seus snippets estão vinculados. Você pode trabalhar com 2 ou 3 linguagens de programação diferentes ao mesmo tempo e pode usar o mesmo nome para diferentes trechos em diferentes linguagens de programação. Nesse caso, o escopo controla em qual idioma seu snippet deve ser inserido para evitar a colisão. Você pode obter a lista de escopos no Link. Alternativamente, você pode ir para TOOLS → DEVELOPER → SHOW SCOPE NAME ou pressionar para obter o nome do escopo da linguagem que você está usando.
  • Descrição (opcional) não estará disponível no modelo padrão, mas você pode usá-la para definir algum contexto sobre o que esse snippet faz.

Agora fizemos algumas coisas básicas. Definimos um snippet que irá inserir um comentário de cabeçalho simples que se vincula ao gatilho da guia “hcom” e é originado no shell script.

Agora vamos abrir um novo arquivo bash e “digitar hcom“. Se você olhar a imagem abaixo quando eu “digito h”, minha definição de snippet simplesmente aparece com a descrição que fornecemos. Tudo o que preciso fazer é pressionar a tecla <tab> para expandi-lo.

Campos

Os campos são indicados usando $1, $2, $3 e assim por diante. Com a ajuda do campo, você pode pular para a posição onde o marcador do campo está colocado simplesmente pressionando a tecla <tab>.

Se você der uma olhada no meu snippet, adicionei dois marcadores de campo $1 e $2, o que acontece é que quando eu insiro meu snippet o cursor será colocado em $1 para que eu possa digitar algo nessa posição.

Então eu tenho que pressionar a tecla <tab> para pular para o próximo marcador $2 e digitar algo. Deve-se notar que quando você tiver qualquer marcador idêntico, digamos $1 neste caso em 2 posições, atualizar o campo em uma posição atualizará os campos idênticos ($1).

  • Tecla <tab> → Ir para o próximo marcador de campo.
  • Tecla → Ir para o marcador de campo anterior.
  • Tecla → Interromper o ciclo de campo.
  • $0 → Controla o ponto de saída.

Suporte de lugar

Os marcadores de posição são como um par de valores-chave definidos entre chaves $ {0:}; o marcador de campo será marcado com um valor padrão. Você pode alterar o valor ou deixá-lo como está. Quando o snippet for inserido e se você pressionar a guia o cursor será colocado no valor padrão.

Agora o snippet é inserido com o valor padrão e o mouse é colocado em $1 que é v1 neste caso. Posso modificar o valor ou apenas pressionar <tab> a tecla para passar para o próximo marcador.

A única desvantagem dos trechos de Sublime Text é que você não pode agrupar todos os trechos em um único arquivo. Apenas um trecho por arquivo é permitido, o que é complicado. Mas existem outras opções, como criar arquivos .sublime-completion. Para saber mais sobre isso, dê uma olhada na documentação.

Onde meu arquivo de snippet é armazenado?

Os arquivos de snippet devem ser salvos com o sufixo .sublime-snippet. Vá para PREFERÊNCIASPROCURAR PACOTES. Isso abrirá o diretório onde as configurações definidas pelo usuário estão armazenadas. Vá para o diretório “Usuário” onde seu arquivo de snippet será salvo.

Gerador de trechos

Snippet-generator-app fornece geração automática de snippets baseada na web com base em nossas informações. Está disponível para Sublime Text, Atom e VSCode. Digite a descrição, o gatilho da guia e o conteúdo no lado esquerdo que irá gerar o código ativo no lado direito da página.

Snippet de amostra que obterá o nome do cluster da API Ambari.

Isso é tudo por hoje. Vimos as vantagens de usar snippets em texto sublime. Acabei de usar um pseudotexto simples como exemplo para demonstrar o recurso de snippets, mas há muito mais do que isso. Gostaria também de salientar que este recurso está disponível em todos os editores/IDE como Vim, Atom, Eclipse, Pycharm >, Vscode, etc.