Kiedy korzystać z katalogu after /?

14

Rozumiem, że jest to miejsce, w którym należy umieścić rzeczy, które powinny mieć ostateczny głos, a nie zostać zastąpione przez inne źródło, ale nie jestem pewien, jak zdecydować, kiedy włożyć coś, powiedzmy, ~/.vim/after/ftplugin/zamiast ~/.vim/ftplugin/.

Czy ludzie na ogół używają ~/.vim/ftplugin/i przenoszą rzeczy tylko ~/.vim/after/ftplugin/wtedy, gdy zauważą niepożądane zachowanie, czy też po prostu umieszczają to wszystko w katalogu późniejszym?

ivan
źródło

Odpowiedzi:

20

Ogólnie rzecz biorąc, jeśli chcesz dodać własną wtyczkę lub zastąpić standardową wtyczkę własną, wejdzie w ~/.vim/pluginlub ~/.vim/ftplugin. Jeśli zamiast tego chcesz zachować funkcjonalność istniejącej wtyczki, ale dodać ją lub zmienić tylko kilka dokonanych przez nią ustawień, wtyczka przejdzie do ~/.vim/after/pluginlub ~/.vim/after/ftplugin.

garyjohn
źródło
Z jakiegoś powodu zawsze zakładałem, że Vim przeszukał ścieżkę runtimepath i pozyskał każdy plik, który pasował do kryteriów wyszukiwania, zamiast po prostu szukać pierwszego znalezionego dopasowania. Brzmi to trochę tak, jakby rzeczy w katalogu po otrzymały taki rodzaj „dodawania do”, ale może wszystko inne jest traktowane bardziej jak zmienna PATH w Uniksie, gdzie wygrywa pierwszy mecz?
ivan
5
Vim robi źródłowy każdego pliku, który pasuje do kryteriów wyszukiwania, ale poprawnie napisane wtyczki test pobliżu ich górnej części formularza if exists("g:loaded_<plugin name>") finish endif let g:loaded_<plugin name> = 1. Wtyczka, która jest ładowana jako pierwsza „wygrywa”, a kolejne wtyczki o tej samej nazwie wychodzą wcześniej z finishpolecenia. W ten sposób na przykład wtyczka w ~/.vim/pluginkatalogu może uniemożliwić $VIMRUNTIME/plugincałkowite załadowanie wtyczki . Ten test nie jest zawarty w afterplikach wtyczek.
garyjohn
Ok, chyba już to rozumiem. Ponieważ wszystkie pliki pasujące zostanie zinterpretowany, użyj finishGuard klauzuli kiedy chcesz załadować tylko pierwszy mecz, i korzystać z katalogu po-( bez a finishGuard klauzuli), gdy trzeba zastąpić ustawienie, które jest dotknięte przez jeden z drugim źródła.
ivan
1

jeśli vim waniliowy rozpoznaje określony typ pliku i chcesz zmodyfikować wysyłane zachowanie, wejdziesz w twoje własne ustawienia ~/.vim/after/ftplugin/

Naumann
źródło