Neovim Lua isdirectory vim function

我希望设置当我在 git 目录中和不在 git 目录中时的 keymaps。也许现在我用 Lua 可能不能像这样做。任何帮助都会被感激。

if vim.fn.isdirectory('.git') then
  map('n', '<leader>t', '<cmd>lua require(\'telescope.builtin\').git_files({hidden = true})<CR>', options)
else
  map('n', '<leader>e', '<cmd>lua require(\'telescope.builtin\').find_files({hidden = true})<CR>', options)
end

似乎总是命中而不是 else。

点赞
用户2858170
用户2858170

isdirectory({directory})

isdirectory() 的返回值是一个数字,当存在名为{directory}的目录时,它是非零的。如果{directory}不存在,或者不是一个目录,则返回FALSE。{directory}是任何表达式,它被用作一个字符串。

:h FALSE

对于布尔运算符,使用数字。零是FALSE,非零是TRUE。您也可以使用|v:false||v:true|。当函数返回TRUE时,它是数字1FALSE是数字0

请确保FALSE实际上是false。它可能是0,在Lua中,0true的值。在Lua中,任何值都是true除了falsenil

因此,最好检查if vim.fn.isdirectory('.git') ~= 0 then

2021-04-26 06:34:01