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,
|
tab_size = 18,
|
||||||
diagnostics = "nvim_lsp",
|
diagnostics = "nvim_lsp",
|
||||||
diagnostics_update_in_insert = false,
|
diagnostics_update_in_insert = false,
|
||||||
-- ✅ 适配 oil.nvim:左侧文件浏览器偏移
|
-- ✅ 适配 oil.nvim 和 nvim-tree:左侧文件浏览器偏移
|
||||||
offsets = {
|
offsets = {
|
||||||
{
|
{
|
||||||
filetype = "oil",
|
filetype = "oil",
|
||||||
@@ -51,6 +51,12 @@ return {
|
|||||||
highlight = "Directory",
|
highlight = "Directory",
|
||||||
text_align = "left",
|
text_align = "left",
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
filetype = "NvimTree",
|
||||||
|
text = "文件树",
|
||||||
|
highlight = "Directory",
|
||||||
|
text_align = "left",
|
||||||
|
},
|
||||||
},
|
},
|
||||||
color_icons = true,
|
color_icons = true,
|
||||||
show_buffer_icons = true,
|
show_buffer_icons = true,
|
||||||
|
|||||||
@@ -41,6 +41,7 @@ return {
|
|||||||
|
|
||||||
-- ✅ 新增:键位分组提示
|
-- ✅ 新增:键位分组提示
|
||||||
wk.add({
|
wk.add({
|
||||||
|
{ "<leader>e", group = "文件树" },
|
||||||
{ "<leader>f", group = "搜索" },
|
{ "<leader>f", group = "搜索" },
|
||||||
{ "<leader>g", group = "Git" },
|
{ "<leader>g", group = "Git" },
|
||||||
{ "<leader>h", group = "Hunk 操作" },
|
{ "<leader>h", group = "Hunk 操作" },
|
||||||
|
|||||||
Reference in New Issue
Block a user