2011-08-04 18 views
20

¿Cómo podría utilizar una variable en un comando de shell vim (uno hecho con !) en vimscript? Por ejemplo, algo algo así como esto: (es un ejemplo, no lo que realmente estoy tratando de hacer)Uso de variables en un comando de shell vim

function Ls(dir) 
    !ls a:dir 
endfunction 

Respuesta

25

Utilice el comando execute. Todo lo que sigue es una expresión que se evalúa como una cadena, que luego se ejecuta como un comando que ha escrito usted mismo.

function Ls(dir) 
    execute '!ls ' . a:dir 
endfunction 

Esta dice: "Evalúa la expresión '!ls ' . a:dir y luego ejecutarlo." La variable a:dir se expande, el punto concatena las dos cadenas en '!ls whatever' y luego se ejecuta como si lo hubiera tipeado.

Cuestiones relacionadas