Jak mogę ponownie zdefiniować mapowanie klawiszy wtyczek?

21

Zainstalowałem wtyczkę, która nie zapewnia mechanizmu wyłączania definiowanych mapowań klawiszy. Chcę przedefiniować jedno z mapowań ( <leader>cc) zdefiniowanych przez wtyczkę dla własnego celu, próbowałem umieścić w moim wierszu następujący wiersz .vimrc:

noremap <leader>cc echo "my purpose"

Ale to nie działa, <leader>ccnadal wykonuje polecenie wtyczki.

Jak mogę zdefiniować moje mapowanie, aby zastąpiło to zdefiniowane przez wtyczkę?

toro2k
źródło
jeden (co prawda nie wielki) opcją jest po prostu wejść i edytować źródła i usunąć mapowanie przestępstwa bezpośrednio
JonnyRaa

Odpowiedzi:

20

Wtyczki są pobierane po Twojej, vimrcwięc nie ma sposobu na zastąpienie mapowania wtyczek, vimrcjeśli wtyczka nie pozwala na to.

Umieszczenie niestandardowego mapowania w ~/.vim/after/plugin/mystuff.vim(nazwa pliku nie ma znaczenia) powinno pozwolić na zastąpienie mapowania wtyczek.

romainl
źródło
1
Robienie tego nie działa dla mnie. I miejsce map <C-l> somethingw tam i to jeszcze dostaje nadpisane przez Pydocstring.
wiosłowa
Czy istnieje sposób, aby to zrobić, który jest specyficzny dla typu pliku (np. Ftplugin)?
Steven Lu
Zgadzam się, to nawet nie działa.
Steven Lu
20

Jak wspomniano w innych odpowiedziach, wtyczki są pobierane po zakończeniu vimrc.

Jeśli chcesz zachować swoje przesłonięcia w vimrc zamiast plugin po, możesz użyć tej „sztuczki” w dowolnym miejscu pliku vimrc:

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

Od :help VimEnter:

VimEnter: Po wykonaniu wszystkich czynności związanych z uruchomieniem, w tym załadowaniu plików .vimrc, wykonaniu argumentów „-c cmd”, utworzeniu wszystkich okien i załadowaniu w nich buforów.

Tak więc wszystko, co umieścisz w poleceniu automatycznym VimEnter, zostanie uruchomione, gdy Vim będzie gotowy. Korzystanie VimEnter ten sposób pozwala zachować wszystkie mapowania z innymi ustawieniami, gdzie wykorzystywane są do utrzymania ich: vimrc.

John O'M.
źródło