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.