2012-08-02 15 views
25

Estuve buscándolo por bastante tiempo.vim scripting, si la versión de vim es <7.3

Quiero agregar una línea a un archivo de complemento vim que lo desactivaría si se ejecuta en la versión no compatible de vim.

que recuerdo de alguna parte que va más o menos así:

if version > 730 
    "plugin code goes here 
endif 

pero que fallan.

+0

Por qué no te haces algo como esto: si la versión <730 acabado endif De lo contrario - Añadir que Plugin Código. (copiado de uno de los archivos VIM :) – hari

Respuesta

41

El esquema de control de versiones es diferente; Vim 7.3 es 703, no 730.

Además, para mayor claridad, recomendaría usar v:version (esta es una variable especial de Vim).

A menudo, también es mejor verificar la disponibilidad de las características (por ejemplo, exists('+relativenumber')) que probar la versión de Vim que introdujo la característica, porque Vim se puede compilar a medida con diferentes funciones.

Por último, los plugins suelen hacer la guardia al revés:

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

y es una buena práctica de combinar esto con una guardia de inclusión. Esto permite a los usuarios individuales para desactivar un (a todo el sistema) plugin instalado:

" 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

En mi caso (y por qué busqué esta pregunta y respuesta), parece que la opción 'j' de' formatoptions' se agregó en 7.4 y mi .vimrc necesita Trabajar a través de ese límite por el momento. (Srsly Apple, sigue enviando 7.3?) –

+0

¿Cómo mostrar el valor de v: version? He intentado 'establecer v: versión?', Pero falló –

+1

@DanielYCLin ': set' es para Vim _options_; esta es una variable incorporada especial. Usted muestra el valor (como con cualquier otra expresión de Vimscript) a través de ': echo v: version' (o': echomsg'). –