vim найти буфер по абсолютному пути

vim найти буфер по абсолютному пути

Как мне найти буфер в vimscript, если у меня есть абсолютный путь, а как вы знаете имена буферов vim могут быть относительными путями? Есть ли для этого функция?

решение1

Функция bufnr()может находить буферы (и возвращать их номер). Как и bufname(), она может принимать запрошенное имя буфера в нескольких формах (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.

Итак, одним из примеров может быть

:echo bufnr('^C:\path\to\file.txt$')

Кроме того, с помощью этой функции можно преобразовывать относительные пути в абсолютные и наоборот fnamemodify().

Связанный контент