如何使用neovim Lua API获取当前缓冲区路径?

我正在使用neovim 0.5,并希望编写一个自定义函数,用于与telescope.nvim一起使用。

我需要获取执行该函数时当前缓冲区的文件路径。我无法在nvim Lua API文档中找到如何执行此操作。

vim.nvim_get_current_buf获取缓冲区号,但我该如何获取当前缓冲区的完整文件路径呢?

原文链接 https://stackoverflow.com/questions/69050359

点赞
stackoverflow用户9500085
stackoverflow用户9500085

你正在寻找的函数是:

vim.fn.expand('%')

% 会被扩展为当前文件名。

查看 :help expand() 以获得更多类似 % 的通配符。

2021-09-04 02:21:00
stackoverflow用户1831096
stackoverflow用户1831096

你可以使用 vim.api.nvim_buf_get_name(0) 获取当前缓冲区文件的完整路径,其中 0 表示缓冲区的 ID,意思是当前缓冲区

https://neovim.io/doc/user/api.html#nvim_buf_get_name()

2021-10-21 22:08:31
stackoverflow用户1534182
stackoverflow用户1534182
`vim.fn.expand('%:p')`

该命令将返回完整路径,而不考虑当前路径(CWD)。如果没有使用%:p修饰符,它可能只会返回相对路径。请参见:help filename-modifiers(或%:p)。

2022-07-14 12:36:14