Existem várias soluções para isso explicadas em um post existente:
Estou usando vim
para programação e codificação competitiva.
Agora, desde que eu quero inserir macros específicas sempre que eu abro um arquivo de origem quando estou fazendo uma codificação competitiva. Acabei de copiar e colar as macros inteiras no editor vim
manualmente do local onde as salvei.
Existe alguma maneira de fazer isso de forma mais eficiente no editor vim
, digamos que eu pressione C C e as macros sejam inseridas no topo da fonte arquivo automaticamente?
Se sim, então quais alterações eu preciso no arquivo .vimrc
para fazer isso?
Existem várias soluções para isso explicadas em um post existente:
Se você quer dizer inserir código clichê ou fragmentos de código reutilizáveis, é possível definir mapeamentos, inserir abreviações de modo ou usar um dos plug-ins snippets mais poderosos.
snippets são como o :abbreviate
dos esteróides, geralmente com inserções de parâmetros, espelhamento e várias paradas dentro deles. Um dos primeiros, muito famosos (e ainda amplamente utilizados) plugins Vim é snipMate (inspirado em o editor TextMate ); infelizmente, não é mais mantido; embora haja um garfo . Uma alternativa moderna (que requer o Python) é UltiSnips . Há mais, veja esta lista no Vim Tips Wiki .
Existem também plugins que preenchem automaticamente um arquivo vazio com um modelo.
Macros normalmente significam sequências de teclas / comandos registradas em um registro, ou mapeamentos derivados disso. Se você quiser apenas para as suas sessões de codificação competitivas, poderá colocá-las em um script macros.vim
separado e :source
sob demanda (em vez de colocá-las diretamente em ~/.vimrc
). Até mesmo o sourcing pode ser automatizado:
Se você sempre inicia o Vim a partir do diretório raiz do projeto, o built-in
:set exrc
ativa a leitura de um arquivo .vimrc
do diretório atual.
Caso contrário, você precisa da ajuda de um plugin; existem vários no vim.org; Posso recomendar o plug-in localrc , que permite até a configuração específica do tipo de arquivo local.