Vimscript- debugging horror

Wystukujesz program z prędkością karabinu maszynowego. Linijka po linijce, save po savie, wszystko idzie jak po maśle. W swojej pysze jesteś pewien że jesteś o krok od ukończenia swojego zadania. Gdy już witasz się z gąską nagle okazuje się że coś, co oczywiście nie ma prawa się zepsuć, robi to z pełną premedytacją. Już wiesz że nie pomoże Ci lakoniczny error message, google ani stack overflow. Bądź dzielny przyjacielu, za 4h zauważysz że w 17 linijce brakuje Ci średnika.

Vimscript nie wybacza. W przypadku literówki jest bezlitosny, a różnica między jego składnią a składnią innych języków potrafi wyprowadzić programistę w pole nawet przy najprostszych wyrażeniach. Postanowiłem więc stworzyć własną referencję najczęściej popełnianych przeze mnie błędów, swoiste TOP5 (choć lista ma charakter raczej otwarty).

1. Średnik na końcu linii.

Ze względu że ostatnio bawię się javascriptem w ilościach hurtowych, a mój personalny style guide nakazuje zakończenie wiersza średnikiem nie raz nie dwa próbowałem zrobić to samo w vimscripcie. Błąd- vimscript nie akceptuje takiego zachowania.

2. Wywołanie funkcji bez call

W vimscripcie żeby wywołać funkcję trzeba jej nazwę poprzedzić komendą call. Wyjątkiem jest przypisanie do zmiennej wartości zwracanej przez funkcję. Daję słowo- łatwo jest o tym zapomnieć.

3. Przypisanie wartości do zmiennej bez let

Żeby w vimscripcie przypisać wartość, sam znak równości nie wystarczy. Przypisanie trzeba poprzedzić komendą let.

4. Brak nawiasów w definicji funkcji

Następnym razem jak trafisz na błąd E193: :endfunction poza funkcją, polecam upewnić się czy po nazwie funkcji nie brakuje pary nawiasów.

5. Znaki pozostawione poza normalnym biegiem programu

Wydaje się to banalne, dopóki nie poświęci się trochę czasu próbując zrozumieć co znaczy wiadomość: E488: Nadstępne znaczki