2012-08-02 11 views
25

Bir süredir etrafa bakıyordum.vim komut dosyası, eğer vim sürümü <7.3

Vim'in desteklenmeyen bir sürümünde çalıştırılıyorsa devre dışı bırakacak bir vim eklenti dosyasına bir satır eklemek istiyorum.

if version > 730 
    "plugin code goes here 
endif 

ama başarısız:

Ben böyle bir şey gider bir yere hatırlıyorum.

+0

: Bu bireysel kullanıcılar için bir (sistem genelinde) kurulu bir eklentiyi devre dışı sağlar sürüm <730 bitirmek endif Aksi takdirde - ekle Kod Eklentisi. (VIM dosyalarından birinden kopyalanmıştır :) – hari

cevap

41

Sürüm oluşturma şeması farklıdır; Vim 7.3, 730 değil 703'dur.

Ayrıca, açıklık açısından v:version'u kullanmanızı öneririz (bu, özel bir Vim değişkeni). Çoğu zaman, özelliklerin kullanılabilirliğini (ör. exists('+relativenumber')), özelliği tanıtan Vim sürümü için yapılan testten daha iyi kontrol etmek daha iyidir, çünkü Vim farklı özellikler ile özel olarak derlenebilir.

Son olarak, eklentileri tipik nöbetçiye tersi yapın:

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

Ve bir içerme görevlisi ile bu birleştirmek için iyi bir uygulamadır. Böyle bir şeyler yapmak yok Neden

" 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

Benim durumumda (ve bu soruya ve cevabın neden arandığına bakılırsa) sanki 7.4'te 'j' seçeneği 'formatoptions' eklendi ve. şu anda bu sınır boyunca çalışın. (Srsly Apple, hala nakliye 7.3?) –

+0

v: sürüm değeri nasıl gösteriliyor? 'Set v: version?' Denedim ama başarısız oldu –

+1

@DanielYCLin ': set 'Vim _options_ için; Bu özel bir yerleşik _variable_. Değeri (diğer Vimscript ifadelerinde olduğu gibi):: echo v: version' (veya ': echomsg') ile gösterirsiniz. –