Utilizando abreviação do vim na edição de scripts SQL

Em post anterior demonstrei como criar um arquivo de sintaxe do vim para destacar padrões de nomenclatura ao criar scripts SQL. Neste post demonstro 3 dicas relacionadas à produtividade, fazendo uso do recursos de abreviações do vim.

A idéia principal é criar um atalho que permita uma auto-complementação (como um snippet) de um trecho de código que seja útil para o digitador. Abra o editor vim e utilize o comando abaixo (lembre-se do ESC antes):

:abbreviate cct CREATE TABLE TB_ (<cr><cr>);<up><up><esc>03ea

O comando acima cria uma abreviação (:abbreviate) para a sequência de caracteres cct, expandido-o para

CREATE TABLE TB_ (

);

Em outras palavras, a qualquer momento que você estiver editando o seu script você pode digitar cct seguido de um espaço e automaticamente ele será convertido para o código acima. A abreviação já “aproveita” e cria umas linhas em branco () e faz o cursor “caminhar” para cima () deslocando-o para o inicio da linha, “pulando” 3 palavras e retornando ao modo de inserção (<esc>03ea)

Com base no exemplo acima, podemos aprimorá-lo já criando um campo CODIGO do tipo SERIAL por padrão:

:abbreviate cct CREATE TABLE TB_ (<cr><tab>CODIGO<tab>SERIAL<tab>NOT NULL,<cr><tab><cr>);<up><up><up><esc>03ea

O comando acima cria uma abreviação (:abbreviate) para a sequência de caracteres cct, agora expandido-o para

CREATE TABLE TB_ (
   CODIGO   SERIAL   NOT NULL,

);

Perceba que inserimos umas tabulações () por questões de estética. “:)

E para finalizar, vamos criar uma abreviação mais complexa, que inclusive já declare uma restrição de chave-primaria para o nosso campo CODIGO:

:abbreviate cct CREATE TABLE TB_ (<cr><tab>CODIGO<tab>SERIAL<tab>NOT NULL,<cr><tab><cr><cr><tab>CONSTRAINT PK_ PRIMARY KEY(CODIGO)<cr>);<up><up><up><up><up> <esc>03ea

E o resultado final, quando digito cct+espaço é:

CREATE TABLE TB_ (
   CODIGO  SERIAL  NOT NULL,
   CONSTRAINT PK_ PRIMARY KEY(CODIGO)
);

Com este exemplo você poderá criar suas próprias abreviações para VIEWS, FUNCTIONs e afins. Use sua imaginação! Para saber mais:

  1. No vim :help abbreviate
  2. Na página do vim: http://www.vim.org/htmldoc/map.html#Abbreviations
  3. Na web: http://www.oualline.com/vim-cook.html

comments powered by Disqus