Parece que o mapeamento é local para um buffer, conforme foi definido com o argumento <buffer>
.
Ao digitar :unmap y<C-G>
, você solicita ao Vim que retire o mapeamento de um mapeamento global cujo {lhs}
é y<C-G>
, mas provavelmente não existe esse mapeamento global no sistema, daí o erro.
Se você deseja remover o mapeamento do mapeamento local, use o mesmo argumento <buffer>
usado para defini-lo::unmap <buffer> y<C-G>
Editar:
Para automatizar o processo, você pode instalar um autocmd observando os acontecimentos VimEnter
, BufNewFile
e BufReadPost
. Ele testaria se o mapeamento existe if !empty(maparg('y<C-G>', 'n'))
antes de tentar excluí-lo. Poderia dar algo como:
augroup custom_fugitive
autocmd!
autocmd VimEnter,BufNewFile,BufReadPost * if !empty(maparg('y<C-G>', 'n')) | unmap <buffer> y<C-G>| endif
augroup END
Você não pode escrever isso no seu, vimrc
porque o último é fornecido antes dos plugins, o que substituirá qualquer coisa que você faça. Em vez disso, você teria que escrever dentro ~/.vim/after/plugin/mappings.vim
. O nome do arquivo ( mappings.vim
) não importa, apenas o diretório é importante ( ~/.vim/after/plugin/
).
Edição 2:
Como seu último comentário diz, parece que há outra maneira de desativar o mapeamento. fugitive
instale os mapeamentos <C-R><C-G>
e y<C-G>
somente se g:fugitive_no_maps
for diferente de zero. Portanto, se você incluir let g:fugitive_no_maps=1
dentro do seu vimrc
, y<C-G>
não deve ser definido.
fugitive
plugin.