您当前的位置: 首页 > 

ITKEY_

暂无认证

  • 0浏览

    0关注

    732博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

bufferline自定义隐藏部分filetype以defx为例

ITKEY_ 发布时间:2021-10-30 08:35:30 ,浏览量:0

项目简介

一个时髦的 💅使用lua构建的 Neovim 的缓冲线(具有最少的选项卡集成) 这个插件试图模仿 GUI 文本编辑器/Doom Emacs 的美感。它的灵感来自使用centaur tabs的 DOOM Emacs 屏幕截图。

请添加图片描述

https://github.com/akinsho/bufferline.nvim

隐藏特定文件类型

不想在标签页中显示defx这个标签页,应该如何处理呢? 在这里插入图片描述

代码如下:

custom_filter = function(buf_number)
      --如果是defx则隐藏
      local finded, _ = string.find(vim.bo[buf_number].filetype, "defx")
      if finded ~= nil then
        return false
      end
      return true
    end
分享我的配置
local status, bufferline = pcall(require, "bufferline")
if (not status) then
  return
end

vim.opt.termguicolors = true
bufferline.setup {
  options = {
    --numbers = "ordinal" | "buffer_id" | "both" | function({ ordinal, id, lower, raise }): string,
    --numbers = "both",
    --- @deprecated, please specify numbers as a function to customize the styling
    --number_style = "superscript" | "subscript" | "" | { "none", "subscript" }, -- buffer_id at index 1, ordinal at index 2
    --number_style = "none",
    close_command = "bdelete! %d", -- can be a string | function, see "Mouse actions"
    right_mouse_command = "bdelete! %d", -- can be a string | function, see "Mouse actions"
    left_mouse_command = "buffer %d", -- can be a string | function, see "Mouse actions"
    middle_mouse_command = nil, -- can be a string | function, see "Mouse actions"
    -- NOTE: this plugin is designed with this icon in mind,
    -- and so changing this is NOT recommended, this is intended
    -- as an escape hatch for people who cannot bear it for whatever reason
    indicator_icon = "",
    buffer_close_icon = "",
    modified_icon = "●",
    close_icon = "",
    left_trunc_marker = "",
    right_trunc_marker = "",
    --- name_formatter can be used to change the buffer's label in the bufferline.
    --- Please note some names can/will break the
    --- bufferline so use this at your discretion knowing that it has
    --- some limitations that will *NOT* be fixed.
    name_formatter = function(buf) -- buf contains a "name", "path" and "bufnr"
      -- remove extension from markdown files for example
      if buf.name:match("%.md") then
        return vim.fn.fnamemodify(buf.name, ":t:r")
      end
    end,
    max_name_length = 15,
    max_prefix_length = 12, -- prefix used when a buffer is de-duplicated
    tab_size = 15,
    --diagnostics = false | "nvim_lsp" | "coc",
    diagnostics = "nvim_lsp",
    diagnostics_update_in_insert = false,
    --[[diagnostics_indicator = function(count, level, diagnostics_dict, context)
      return "(" .. count .. ")"
    end,]]
    -- rest of config ...

    --- count is an integer representing total count of errors
    --- level is a string "error" | "warning"
    --- diagnostics_dict is a dictionary from error level ("error", "warning" or "info")to number of errors for each level.
    --- this should return a string
    --- Don't get too fancy as this function will be executed a lot
    diagnostics_indicator = function(count, level, diagnostics_dict, context)
      local icon = level:match("error") and " " or " "
      return " " .. icon .. count
    end,
    -- NOTE: this will be called a lot so don't do any heavy processing here
    custom_filter = function(buf_number)
      --如果是defx则隐藏
      local finded, _ = string.find(vim.bo[buf_number].filetype, "defx")
      if finded ~= nil then
        return false
      end
      return true
    end,
    --offsets = {{filetype = "NvimTree", text = "File Explorer" | function , text_align = "left" | "center" | "right"}},
    --show_buffer_icons = true | false, -- disable filetype icons for buffers
    show_buffer_icons = true, -- disable filetype icons for buffers
    --show_buffer_close_icons = true | false,
    show_buffer_close_icons = false,
    --show_close_icon = true | false,
    show_close_icon = false,
    --show_tab_indicators = true | false,
    show_tab_indicators = true,
    persist_buffer_sort = true, -- whether or not custom sorted buffers should persist
    -- can also be a table containing 2 custom separators
    -- [focused and unfocused]. eg: { '|', '|' }
    --separator_style = "slant" | "thick" | "thin" | {"any", "any"},
    separator_style = "thin",
    --enforce_regular_tabs = false | true,
    enforce_regular_tabs = false,
    --always_show_bufferline = true | false,
    always_show_bufferline = true
    --[[sort_by = "id" | "extension" | "relative_directory" | "directory" | "tabs" | function(buffer_a, buffer_b)
        -- add custom logic
        return buffer_a.modified > buffer_b.modified
      end]]
  }
}

--按键映射
--nnoremap  gb :BufferLinePick
vim.api.nvim_set_keymap("n", "gb", "BufferLinePick", {noremap = true, silent = true})

vim.api.nvim_set_keymap("n", "1", "BufferLineGoToBuffer 1", {noremap = true, silent = true})
vim.api.nvim_set_keymap("n", "2", "BufferLineGoToBuffer 2", {noremap = true, silent = true})
vim.api.nvim_set_keymap("n", "3", "BufferLineGoToBuffer 3", {noremap = true, silent = true})
vim.api.nvim_set_keymap("n", "4", "BufferLineGoToBuffer 4", {noremap = true, silent = true})
vim.api.nvim_set_keymap("n", "5", "BufferLineGoToBuffer 5", {noremap = true, silent = true})
vim.api.nvim_set_keymap("n", "6", "BufferLineGoToBuffer 6", {noremap = true, silent = true})
vim.api.nvim_set_keymap("n", "7", "BufferLineGoToBuffer 7", {noremap = true, silent = true})
vim.api.nvim_set_keymap("n", "8", "BufferLineGoToBuffer 8", {noremap = true, silent = true})
vim.api.nvim_set_keymap("n", "9", "BufferLineGoToBuffer 9", {noremap = true, silent = true})

关注
打赏
1665243900
查看更多评论
立即登录/注册

微信扫码登录

0.0404s