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 (<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 (
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