vimscript – ¿Cómo lidiar con cadenas que contienen espacios en el script Vim?

Pregunta:

Tengo el siguiente comando en mi vimrc:

execute "set path+=".getcwd()."/**"

Funciona bien si el directorio de trabajo actual es como /home/tamlok/my_work/ . Sin embargo, si el directorio contiene espacios, como D:\Program Files\vim\ , vim se quejará.

Supongo que puedo solucionar esto usando la función substitute() para reemplazar todos los espacios con espacios de escape. ¿Qué haría aquí un vimmer experimentado?

Otro problema es el \ en Windows. Si getcwd() obtiene D:\Program Files\vim\ , ¿necesito escapar del \ con \\ o reemplazarlo con / ?

Por ahora lo manejo así:

let mycwd=substitute(getcwd(), '\\', '/', 'g')
let mycwd=substitute(mycwd, ' ', '\\ ', 'g')
execute "set path+=".mycwd."/**"

¿Eso esta bien? ¡Se agradece cualquier ayuda! ¡Muchas gracias!

Respuesta:

La función que está buscando es fnameescape() . Se escapará de todos los caracteres especiales en una cadena dada que contenga una ruta a un archivo para que coincida con el estándar del sistema operativo actual.

Para obtener más información sobre esto, consulte :help fnameescape()

Leave a Comment

Your email address will not be published.

Scroll to Top

istanbul avukat

-

web tasarım