Przeszedłem autocmd.txt
pomoc, ale informacje na ten temat są rozproszone i nie zawsze są obecne (np. Z BufRead
).
Czy ktoś, kto dobrze to rozumie, może wymienić kolejność tych wydarzeń - być może warunki zaznaczone w nawiasach, na przykład
WinEnter
BufEnter (if this window is for a different buffer than the current)
i tak dalej, dla łatwego odniesienia?
Uwaga (skopiowano z mojego komentarza poniżej) : Nie mówię o indywidualnych wyjaśnieniach, które są w porządku, ale o tym, jak wchodzą w interakcje ze sobą i w jakiej kolejności. Na przykład WinEnter
mówi: „Vim wykonuje komendy automatyczne BufEnter po komendach WinEnter”, TabEnter
mówi „Po uruchomieniu WinEnter i przed uruchomieniem zdarzenia BufEnter” wszystko jest tak rozproszone w wielu miejscach. I czasem wcale o tym nie wspomina (na przykład BufRead
nie wspomina, czy działa po BufEnterze, czy wcześniej - może ekspert może wywnioskować to na podstawie innych informacji, ale nie mogę.
Więc moim celem jest utwórz pojedyncze, proste odniesienie do porządku tych wydarzeń, które mogą być szybko sprawdzone przez osoby niebędące ekspertami,autocmd
specyfikacje zdarzeń.
źródło
WinEnter
mówi: „Vim wykonuje komendy automatyczne BufEnter po komendach WinEnter”,TabEnter
mówi „Po uruchomieniu WinEnter i przed uruchomieniem zdarzenia BufEnter” wszystko jest tak rozproszone w wielu miejscach. I czasem wcale o tym nie wspomina (na przykładBufRead
nie wspomina, czy działa po BufEnter, czy wcześniej - może ekspert może wywnioskować to na podstawie innych informacji, ale nie mogę.autocmd
specyfikacjach wydarzeń.Odpowiedzi:
Aby wypełnić odpowiedź @sundar:
Możesz zalogować kolejność zdarzeń po prostu za pomocą funkcji rejestrowania:
Zobacz pełny plik tutaj: https://gist.github.com/nobe4/aa8313fe98ca8821afad
Możesz wtedy
tail -f log
i otrzymujesz aktywność zdarzenia automatycznego komendowania w czasie rzeczywistym.źródło
Próbowałem googlować z różnymi zestawami słów kluczowych i uderzyłem w złoto podczas jednej takiej próby z tym rezultatem: http://www.ibm.com/developerworks/library/l-vim-script-5/
W szczególności ta część dotyczy bieżącego pytania:
Nadal nie jest do końca wyczerpujący (np. Brak wzmianki o
BufRead
akaBufReadPost
, ale zakładam, że przyjdzie późniejBufReadCmd
), ale jest to doskonały początek.Jednym z kluczowych brakujący kawałek informacji jest jednak, w jaki sposób
FileType
iSyntax
autocmd zdarzenia interakcji z tego (zakładając,filetype
isyntax
są już włączony, a nowy plik jest otwierany którego filetype i składnia są znane Vima).źródło
autocmd
s w wielu plikach nie jest dobrze zdefiniowana. Nawet w przypadku jednego pliku kolejność zmieniła się kilka razy wraz z wersją Vima. Problemy, które może to powodować (i robi) dla wtyczek, zostały omówione na śmierć na vim_dev, a ogólny projekt nie zmieni się w przewidywalnej przyszłości. Jeśli chodzi o pełne zrozumienie, cóż, istnieje 139 wystąpieńapply_autocmds
w źródłach dla Vima 7.4.827. Powodzenia z tym.autocmd
W Vimie jest bałagan, nie sądzę, że można napisać ostateczne odniesienie, z wyjątkiem kilku prostych przypadków. Podejrzewam, że wszyscy po prostu godzą się na „zwykle działa” i wzruszają ramionami, kiedy to nie działa. Co do neovim, osobiście mam mieszane uczucia co do projektu. Ostatnio nie oglądałem kodu; Podejrzewam, że możesz uzyskać odpowiedź na temat narzędzia do śledzenia problemów.