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

19
我正在使用Neovim 0.5,并且想要编写一个自定义函数来与telescope.nvim一起使用。
在执行该函数之前,我需要获取当前缓冲区中加载的文件的路径。在阅读了Neovim Lua API文档后,我仍然无法找到如何实现这一点。
到目前为止,我发现vim.api.nvim_get_current_buf()可以返回当前缓冲区的编号,但是如何获取当前缓冲区的完整文件路径呢?
3个回答

31

22

你正在寻找的函数是:

vim.fn.expand('%')

% 会扩展为当前文件名。

有关更多类似 % 的通配符,请参见 :help expand()


1
这是错误的。它可能会给出相对路径。 - Jongwook Choi
2
对于绝对路径,请使用vim.fn.expand("%:p") - Cameron Flint

10
vim.fn.expand('%:p') 

无论当前路径(CWD)为何,都会提供完整路径。如果没有%:p修饰符,可能只会给出相对路径。请参见:help filename-modifiers(或%:p


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接