ITADN
nvim-tree/nvim-tree.lua
README.md
以下内容由 AI 翻译,如有问题请点此提交 issue 反馈

一个用 Lua 编写的 Neovim 文件管理器

CI

自动更新

文件类型图标

Git 集成

诊断集成:LSP 和 COC

(实时)过滤

重命名、删除、创建

本地及跨实例剪切、复制、粘贴

高度可定制



查看 wiki 以获取展示、技巧、食谱等更多内容。

问题及一般支持:Discussions

需求

Nvim >= 0.10。至少保证 n - 0.1 稳定版 Nvim 的兼容性。您可以使用 compat-nvim-0.X 标签来支持更早的 Nvim 版本,但这些版本将不会收到更新或支持。

nvim-web-devicons 是可选的,用于显示文件图标。它需要一个 打过补丁的字体。您的终端模拟器必须配置为使用该字体,通常是 "Hack Nerd Font"

安装

请通过您首选的包管理器进行安装。有关特定包管理器的说明,请参阅 安装

可以通过标签指定主要版本或次要版本:v<MAJOR> 例如 v1v<MAJOR>.<MINOR> 例如 v1.23

快速开始

通过您的包管理器安装插件: "nvim-tree/nvim-tree.lua" "nvim-tree/nvim-web-devicons"

强烈建议禁用 netrw,请参阅 :help nvim-tree-netrw

配置

在您的 init.lua 中配置该插件。

请参阅 :help nvim-tree-setup:help nvim-tree-config-default

  -- disable netrw at the very start of your init.lua
  vim.g.loaded_netrw = 1
  vim.g.loaded_netrwPlugin = 1

  -- optionally enable 24-bit colour
  vim.opt.termguicolors = true

  -- empty setup using defaults
  require("nvim-tree").setup()

  -- OR setup with a config

  ---@type nvim_tree.config
  local config = {
    sort = {
      sorter = "case_sensitive",
    },
    view = {
      width = 30,
    },
    renderer = {
      group_empty = true,
    },
    filters = {
      dotfiles = true,
    },
  }
  require("nvim-tree").setup(config)

帮助

打开树: :NvimTreeOpen

显示映射: g?

自定义映射

:help nvim-tree-mappings-default 默认应用,但您可以通过 :help nvim_tree.config {on_attach} 进行自定义,例如

  local function my_on_attach(bufnr)
    local api = require "nvim-tree.api"

    local function opts(desc)
      return { desc = "nvim-tree: " .. desc, buffer = bufnr, noremap = true, silent = true, nowait = true }
    end

    -- default mappings
    api.map.on_attach.default(bufnr)

    -- custom mappings
    vim.keymap.set("n", "<C-t>", api.tree.change_root_to_parent,        opts("Up"))
    vim.keymap.set("n", "?",     api.tree.toggle_help,                  opts("Help"))
  end

  -- pass to setup along with your other config
  require("nvim-tree").setup({
    ---
    on_attach = my_on_attach,
    ---
  })

高亮组

参见 :help nvim-tree-highlight-groups

运行 :NvimTreeHiTest 以显示 nvim-tree 使用的所有高亮。

它们可以在 setup 调用之前或之后进行自定义,并会在运行时立即应用。例如

  vim.cmd([[
      :hi      NvimTreeExecFile    guifg=#ffa0a0
      :hi      NvimTreeSpecialFile guifg=#ff80ff gui=underline
      :hi      NvimTreeSymlink     guifg=Yellow  gui=italic
      :hi link NvimTreeImageFile   Title
  ]])

命令

参见 :help nvim-tree-commands

某些命令可以附带感叹号 ! 执行,或接受一个 path 字符串参数。

所有命令均执行公共 API。

一些基本命令:

:NvimTreeFocus :help nvim_tree.api.tree.open()

  require("nvim-tree.api").tree.open()

:NvimTreeToggle :help nvim_tree.api.tree.toggle()

  require("nvim-tree.api").tree.toggle({
    path = "<args>",
    find_file = false,
    update_root = false,
    focus = true,
  })

:NvimTreeFindFile :help nvim_tree.api.tree.find_file()

  require("nvim-tree.api").tree.find_file({
    open = true,
    update_root = "<bang>",
    focus = true,
  })

:NvimTreeCollapse :help nvim_tree.api.tree.collapse_all()

  require("nvim-tree.api").tree.collapse_all({
    keep_buffers = false
  })

路线图

nvim-tree 已趋于稳定,不会添加新的主要功能。重点在于现有用户体验。

鼓励用户通过公共 API 添加自己的自定义功能。

开发重点包括:

  • 错误修复
  • 性能
  • 生活质量改进
  • API / 事件
  • 现有功能的增强
  • 多实例能力

API

nvim-tree 暴露了一个公共 API。这是非破坏性的,会根据需要进行添加。参见 :help nvim-tree-api

参见 wiki RecipesTips 以获取想法和灵感。

如果 API 无法满足您的需求,请提出 功能请求。我们随时欢迎贡献,详见下文。

您还可以订阅 nvim-tree 在各种情况下会分发的各种事件,参见 :help nvim-tree-events

贡献

随时欢迎 PR。参见 CONTRIBUTINGwiki: Development 以开始。

如果您正在寻找一些工作以开始,请参见 bugPR Please 问题。

截图

参见 Showcases wiki 页面,查看带有源代码的用户配置示例。

请添加您自己的!

团队