feat: 添加 nvim-tree 侧边文件树
- 新增 filetree.lua:nvim-tree 常驻侧边栏 - <leader>e 开关侧边文件树(VSCode 风格) - oil.nvim 保留,用 - 键快速编辑目录 - bufferline 添加 NvimTree 偏移适配 - which-key 添加 <leader>e 分组
This commit is contained in:
@@ -0,0 +1,68 @@
|
||||
-- =============================================================================
|
||||
-- filetree.lua — 侧边文件树
|
||||
-- =============================================================================
|
||||
-- 【新增文件】nvim-tree 作为常驻侧边栏(VSCode 风格),oil.nvim 保留用于快速编辑。
|
||||
-- 两者共存:nvim-tree 看结构,oil 改文件。
|
||||
-- 键位:<leader>e 开关侧边栏
|
||||
|
||||
return {
|
||||
{
|
||||
"nvim-tree/nvim-tree.lua",
|
||||
version = "*",
|
||||
lazy = false, -- 立即加载,确保打开就有侧边栏
|
||||
dependencies = { "nvim-tree/nvim-web-devicons" },
|
||||
config = function()
|
||||
-- 禁用 netrw(避免和 oil 冲突,oil 自己也会禁一次,这里双保险)
|
||||
vim.g.loaded_netrw = 1
|
||||
vim.g.loaded_netrwPlugin = 1
|
||||
|
||||
require("nvim-tree").setup({
|
||||
sort_by = "case_sensitive",
|
||||
view = {
|
||||
width = 30,
|
||||
side = "left",
|
||||
relativenumber = false,
|
||||
-- ✅ 关闭文件树时自动调整窗口大小
|
||||
adaptive_size = false,
|
||||
},
|
||||
renderer = {
|
||||
group_empty = true,
|
||||
icons = {
|
||||
show = {
|
||||
file = true,
|
||||
folder = true,
|
||||
folder_arrow = true,
|
||||
git = true,
|
||||
},
|
||||
},
|
||||
},
|
||||
filters = {
|
||||
dotfiles = false,
|
||||
custom = { "^.git$" },
|
||||
},
|
||||
git = {
|
||||
enable = true,
|
||||
ignore = false,
|
||||
},
|
||||
actions = {
|
||||
open_file = {
|
||||
quit_on_open = false, -- 打开文件不关树
|
||||
window_picker = {
|
||||
enable = true,
|
||||
},
|
||||
},
|
||||
},
|
||||
-- ✅ 打开 nvim 时自动打开文件树
|
||||
auto_open_on_setup = false, -- 不自动开,用 <leader>e 手动开
|
||||
on_attach = function(bufnr)
|
||||
local api = require("nvim-tree.api")
|
||||
api.config.mappings.default_on_attach(bufnr)
|
||||
end,
|
||||
})
|
||||
|
||||
-- <leader>e 开关侧边文件树
|
||||
vim.keymap.set("n", "<leader>e", "<cmd>NvimTreeToggle<CR>",
|
||||
{ desc = "侧边文件树", noremap = true, silent = true })
|
||||
end,
|
||||
},
|
||||
}
|
||||
+7
-1
@@ -43,7 +43,7 @@ return {
|
||||
tab_size = 18,
|
||||
diagnostics = "nvim_lsp",
|
||||
diagnostics_update_in_insert = false,
|
||||
-- ✅ 适配 oil.nvim:左侧文件浏览器偏移
|
||||
-- ✅ 适配 oil.nvim 和 nvim-tree:左侧文件浏览器偏移
|
||||
offsets = {
|
||||
{
|
||||
filetype = "oil",
|
||||
@@ -51,6 +51,12 @@ return {
|
||||
highlight = "Directory",
|
||||
text_align = "left",
|
||||
},
|
||||
{
|
||||
filetype = "NvimTree",
|
||||
text = "文件树",
|
||||
highlight = "Directory",
|
||||
text_align = "left",
|
||||
},
|
||||
},
|
||||
color_icons = true,
|
||||
show_buffer_icons = true,
|
||||
|
||||
@@ -41,6 +41,7 @@ return {
|
||||
|
||||
-- ✅ 新增:键位分组提示
|
||||
wk.add({
|
||||
{ "<leader>e", group = "文件树" },
|
||||
{ "<leader>f", group = "搜索" },
|
||||
{ "<leader>g", group = "Git" },
|
||||
{ "<leader>h", group = "Hunk 操作" },
|
||||
|
||||
Reference in New Issue
Block a user