
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 (<cr>) e faz o cursor “caminhar” para cima (<up>) 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 (<tab>) 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:
- No vim :help abbreviate
- Na página do vim: http://www.vim.org/htmldoc/map.html#Abbreviations
- Na web: http://www.oualline.com/vim-cook.html