Como redefinir os mapeamentos de teclas do plugin?


21

Eu instalei um plug-in que não fornece um mecanismo para desativar os mapeamentos de teclas que ele define. Eu quero redefinir um dos mapeamentos ( <leader>cc) definidos pelo plugin para minha própria busca, tentei colocar a seguinte linha na minha .vimrc:

noremap <leader>cc echo "my purpose"

Mas isso não funciona, <leader>ccainda está executando o comando do plugin.

Como posso definir meu mapeamento para que ele substitua os definidos pelo plug-in?


uma opção (reconhecidamente não muito) é simplesmente entrar e editar a fonte e remover o mapeamento ofender diretamente
— JonnyRaa

Respostas:


20

Os plug-ins são originados após o seu, vimrcportanto não há como substituir um mapeamento de plug-in no seu vimrcse o plug-in não fornecer uma maneira de fazê-lo.

A colocação do seu mapeamento personalizado ~/.vim/after/plugin/mystuff.vim(o nome do arquivo não importa) deve permitir que você substitua o mapeamento do plug-in.


1
Fazer isso não funciona para mim. Eu coloco map <C-l> somethinglá e ele ainda é dominado por Pydocstring.
— oarfish

Existe uma maneira de fazer isso específico para um tipo de arquivo (como ftplugin)?
— Steven Lu

Além disso, concorde, isso nem funciona.
— 9185 Steven Lu Lu

19

Como mencionado em outras respostas, os plugins são obtidos após a conclusão do vimrc.

Se você deseja manter suas substituições no vimrc em vez de executar um plug-in posterior, use este "truque" em qualquer lugar do seu arquivo vimrc:

autocmd VimEnter * noremap <leader>cc echo "my purpose"

De :help VimEnter:

VimEnter: Depois de executar todas as tarefas de inicialização, incluindo carregar arquivos .vimrc, executar os argumentos "-c cmd", criar todas as janelas e carregar os buffers neles.

Portanto, tudo o que você coloca em um comando automático do VimEnter é executado depois que o Vim estiver pronto. Usando VimEnter desta forma permite que você mantenha todos os seus mapeamentos com suas outras configurações onde são usados para mantê-los: vimrc.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.