vim.cmd('hi ActiveBuffer term=underline cterm=underline ctermfg=none ctermbg=none')
function set_status(args)
local buffs = {}
local no_list_buffs = {['']=true, ['[Command Line]']=true}
for _,v in pairs(vim.fn.getbufinfo({buflisted=1})) do
local fname = vim.fn.fnamemodify(v.name, ":t")
if(not no_list_buffs[fname]) then
if(v.bufnr == args.buf) then
fname = '%#ActiveBuffer#'..fname..'%*'
end
table.insert(buffs, fname)
end
end
vim.o.statusline = '%F%m %y%='..'<'..table.concat(buffs, ',')..'>'..' %c,%l/%L %P'
end
字符串 要使用autocmd调用,请执行以下操作:
vim.api.nvim_create_autocmd({'BufEnter'},
{
group = vim.api.nvim_create_augroup('BufStatusLine', {}),
callback = set_status
})
3条答案
按热度按时间f0brbegy1#
我喜欢这个插件"vim-bufferline"
第一个好处是,一旦它发现命令行处于非活动/空闲状态约3秒,它就会显示在命令行的空的、未使用的空间上。一旦我们按下,它就会消失:(命令的开始)。
然后,它在命令行上显示Vim中打开的所有缓冲区的列表,并突出显示光标所在的活动缓冲区。
vfhzx4xs2#
有插件可以做到这一点;例如minibufexpl.vim。
实际上,这种需求听起来很奇怪。你知道像
:buffer
这样的命令也需要一个文件名,并且也会自动完成它吗?!默认情况下,GVIM有一个 Buffers 菜单。许多用户使用CtrlP、FuzzyFinder或Unite等插件来快速定位缓冲区和文件。lyfkaqu13#
Lua函数列出状态行中的缓冲区名称,突出显示活动的缓冲区名称:
字符串
要使用autocmd调用,请执行以下操作:
型