sexta-feira, 10 de abril de 2009

Os usos e diferenças de <SID> e <Plug> no plugin

Os strings <SID> e <Plug> são usados para evitar que mapeamento das teclas pressionadas interfiram com mapeamentos que são somente para serem usados a partir de outros mapeamentos.

As diferenças entre os dois:
<Plug>

Visível do lado de fora do script. Ele é usado para mapeamentos que o usuário
poderia querer mapear para um sequencia de teclas.

<Plug> é um código especial que uma tecla pressionada nunca produzirá.

Para tornar muito improvável que outros plugins usem a mesma sequencia de
caracteres, use esta estrutura: <Plug> nome-do-script nome-do-mapa

No nosso exemplo o nome do script é 'Typecorr' e o nome do mapa é 'Add'.
Isto resulta em '<Plug>TypecorrAdd'. Somente o primeiro carácter do nome do
plugin e do nome do mapa é maiúsculo, para que possamos ver aonde o nome do mapa
começa.

<SID>
É o script ID, um identificador único para o script.

Internamente o vim traduz <sid> para '<SNR>123_', aonde '123' pode ser qualquer
número. Assim uma função '<SID>Add()' terá o nome de fato '<SNR>11_Add()' em um script e, em um outro script, '<SNR>22_Add()'.
Você pode ver isso se você usa o comando ':function' para obter uma lista de funções.

A tradução de <SID> em mapeamentos é exatamente a mesma, isto é como você pode chamar uma função local
de script a partir de um mapeamento.

0 comentários:

Postar um comentário