Closed reaink closed 2 years ago
别说, 我还真碰到这样子的情况, 哈哈哈哈 ,我晚点去看看它的这个close_buffer
代码.
我在本地测试了下, 发现使用:bd<CR>
会退出程序的场景是nvim-tree
是打开的状态, 然后在通过<leader>x
关闭buffer(打开两个以上的buffer)时, 会直接退出nvim.
这是nvim-tree
的问题, 可以看看issue-235、issue-252
有两个解决办法:
nvim-tree
, 对应的配置actions.open_file.quit_on_open = false
, 这样子就不会出现这个问题(我自己比较喜欢每次打开时就关闭nvim-tree
).<leader>x
键位使用自定义的close_buffer
.-- utils.lua
M.close_buffer = function()
local fn = vim.fn
local cmd = vim.cmd
local buflisted = fn.getbufinfo({ buflisted = 1 })
local cur_winnr, cur_bufnr = fn.winnr(), fn.bufnr()
if #buflisted < 2 then
vim.cmd('confirm qall')
return
end
for _, winid in ipairs(fn.getbufinfo(cur_bufnr)[1].windows) do
vim.cmd(string.format('%d wincmd w', fn.win_id2win(winid)))
vim.cmd(cur_bufnr == buflisted[#buflisted].bufnr and 'bp' or 'bn')
end
vim.cmd(string.format('%d wincmd w', cur_winnr))
local is_terminal = fn.getbufvar(cur_bufnr, '&buftype') == 'terminal'
vim.cmd(is_terminal and 'bd! #' or 'silent! confirm bd #')
end
我看到 nvchad 已修改 close_buffer 的方法
https://github.com/NvChad/NvChad/blob/76d194b1414d2351364ef1a84672e6b95110b65a/lua/core/utils.lua#L4-L117
不知道大家有没有谁遇到过现在所使用的
:bd<CR>
这种<leader>x
会退出程序的情况