2012-08-02 15 views
25

Szukałem tego od dłuższego czasu.Skrypty vima, jeśli wersja vima jest <7.3

Chcę dodać wiersz do pliku wtyczki vim, który wyłączy go, jeśli działa na nieobsługiwanej wersji vima.

pamiętam skądś, że idzie coś takiego:

if version > 730 
    "plugin code goes here 
endif 

ale że nie.

+0

Dlaczego nie robisz pewne rzeczy tak: jeśli wersja <730 wykończenie endif Inaczej - Dodaj Ci Plugin Code. (Skopiowano z jednego z plików VIM :) – hari

Odpowiedz

41

Schemat wersjonowania jest inny; Vim 7.3 to 703, a nie 730.

Dla większej przejrzystości zalecam również użycie v:version (jest to specjalna zmienna Vima).

Często lepiej jest sprawdzić dostępność funkcji (np. exists('+relativenumber')) niż testowanie wersji Vima, która wprowadziła tę funkcję, ponieważ Vim może być skompilowany na zamówienie z różnymi funkcjami.

Wreszcie, wtyczki zazwyczaj zrobić strażnikowi na odwrót:

if v:version < 703 
    finish 
endif 
" Plugin goes here. 

I to jest dobra praktyka, aby połączyć to z osłoną inkluzji. Pozwala to użytkownikom na indywidualne wyłączyć (system-wide) zainstalowanej wtyczki:

" Avoid installing twice or when in unsupported Vim version. 
if exists('g:loaded_pluginname') || (v:version < 700) 
    finish 
endif 
let g:loaded_pluginname = 1 
+1

W moim przypadku (i dlaczego szukałem tego pytania i odpowiedzi) wydaje się, że opcja 'j' do' formatoptions' została dodana w wersji 7.4, a moja .vimrc musi przekroczyć tę granicę na razie. (Srsly Apple, wciąż wysyłka 7.3?) –

+0

Jak wyświetlić v: wartość wersji? Próbowałem "set v: version?", Ale nie powiodło się –

+1

@DanielYCLin ': set' jest dla Vim _options_; jest to specjalna wbudowana _zmienna_. Pokazujesz wartość (jak w przypadku każdego innego wyrażenia Vimscript) za pomocą ': echo v: version' (lub': echomsg'). –