¿Cómo puedo encontrar un búfer en vimscript cuando tengo una ruta absoluta y, como usted sabe, los nombres de los búfer de vim pueden ser una ruta relativa? ¿Existe una función para eso?
Respuesta1
La bufnr()
función puede encontrar buffers (y devolver su número). Por ejemplo bufname()
, esto puede tomar el nombre del búfer consultado de varias formas (cp. :help bufname()
):
A full match is preferred, otherwise a match at the start, end or middle of the buffer name is accepted. If you only want a full match then put "^" at the start and "$" at the end of the pattern.
Entonces, un ejemplo sería
:echo bufnr('^C:\path\to\file.txt$')
Además, puede convertir entre rutas relativas y absolutas mediante la fnamemodify()
función.