2011-05-26 8 views

Respuesta

34

De los documentos, parece que los argumentos no pueden tener valores predeterminados en el script de Vim. Sin embargo, puede emular este mediante la definición de una función con número variable de argumentos, y el uso de a:0 para determinar el número de argumentos adicionales y a:1 través a:n para acceder a ellos:

function Foo(bar, ...) 
    if a:0 > 0 
    let xyzzy = a:1 
    else 
    let xyzzy = 0 
    end 
endfunction 
+5

Una versión corta que utiliza la declaración ternaria: 'let l: xyzzy = a: 0> 0? a: 1: 0'. – wting

1

Puede utilizar get para seleccionar un argumento en la posición específica o un valor predeterminado si no está presente.

function! Foo(bar, ...) 
    let baz = get(a:, 1, 0) 
endfunction 
Cuestiones relacionadas