跳至内容

NvimTree - 文件浏览器

NvimTree

要使其发挥功能,编辑器必须提供对打开和管理我们要写入或编辑的文件的支持。Neovim 在其基本安装中没有提供文件管理功能。这是通过 NvChad 使用 _kyazdani42/nvim-tree.lua_ 插件实现的。该插件提供了一个文件浏览器,您可以通过键盘按键对文件执行所有最常见的操作。要打开它,您使用组合 Ctrl + n,它仅在 _NORMAL_ 模式下可用,并且使用相同的组合键关闭它。

如果我们安装了 Nerd 字体,我们将看到,正如截图所示,一个尽管是文本但会给出文件树图形表示的文件浏览器。

打开后,我们可以使用组合 Ctrl + h 向左移动和 Ctrl + l 向右移动,在浏览器窗口和编辑器窗口之间切换。

使用文件浏览器

要使用项目的文件夹树,_NvimTree_ 提供了许多有用的管理快捷键,它们是

  • R (刷新) 以重新读取项目中包含的文件
  • H (隐藏) 以隐藏/显示隐藏文件和文件夹(以点 _._ 开头)
  • E (全部展开) 以从根文件夹(工作区)开始展开整个文件夹树
  • W (全部折叠) 以从根文件夹开始关闭所有打开的文件夹
  • - (向上移动目录) 允许您向上移动文件夹。此导航还允许您从根文件夹(工作区)退出到主目录
  • s (系统) 以使用默认情况下为该文件类型设置的系统应用程序打开文件
  • f (查找) 以打开交互式文件搜索,可以对其应用搜索过滤器
  • F 以关闭交互式搜索
  • Ctrl + k 以显示有关文件的信息,例如大小、创建日期等。
  • g + ? 以打开帮助,其中包含所有预定义的快捷键以供快速参考
  • q 以关闭文件浏览器

Nvimtree Find

注意

使用 f 执行的交互式搜索,以及使用箭头 > < 进行的导航,都局限于 _NvimTree_ 当前所在的文件夹。要对整个工作区进行全局搜索,您必须首先使用 E 打开整个文件夹树,然后使用 f 开始搜索。

搜索将 _NvimTree_1 缓冲区置于 _INSERT_ 状态以便键入我们的过滤器。如果没有选择文件,退出搜索需要您使用 Esc 将缓冲区返回到 _NORMAL_ 状态,然后再使用 F 关闭搜索。

选择一个文件

要选择一个文件,我们必须首先确保我们在状态栏中以 _NvimTree_1_ 突出显示的 _nvimtree_ 缓冲区中。为此,我们可以使用上面提到的窗口选择键或 NvChad 提供的特定 Space + e 命令,该命令将光标定位在文件夹树中。该组合是 NvChad 的默认映射的一部分,对应于插件的 :NvimTreeFocus 命令。

要遍历文件夹树,我们提供了 >< 键,这些键允许我们上下移动树,直到到达所需的文件夹。定位后,我们可以使用 Enter 打开它,并使用 BS 关闭它。

必须强调的是,使用 >< 键进行的导航始终是指当前文件夹。这意味着,一旦打开文件夹并在其中定位,导航将局限于该文件夹。要退出文件夹,我们使用 Ctrl + p(父目录)键,该键允许我们从当前文件夹向上移动到打开编辑器的文件夹,该文件夹对应于我们在右侧状态栏中定义的_工作区_。

打开一个文件

定位在所需的文件夹中,并选择了要编辑的文件,我们有以下组合来打开它

  • Entero 以在一个新缓冲区中打开文件并将光标置于文件的首行
  • Tab 以在一个新缓冲区中打开文件,同时将光标保留在 _nvimtree_ 中,例如,如果您要一次打开多个文件,这将很有用
  • Ctrl + t 以在一个新_选项卡_中打开文件,该选项卡可以与其他存在的缓冲区分开管理
  • Ctrl + v 打开缓冲区中的文件,将其垂直分成两部分。如果已经打开了一个文件,则新文件将与它并排显示。
  • Ctrl + h 以与上述命令相同的方式打开文件,但将缓冲区水平分割。

文件管理

与所有文件浏览器一样,在 nvimtree 中,您可以创建、删除和重命名文件。由于这始终是通过文本方式进行的,因此您不会拥有方便的图形小部件,但说明将显示在 状态栏 中。所有组合都有一个确认提示 (y/n),以便您可以验证操作,从而避免不必要的更改。这对于删除文件尤为重要,因为删除将是不可逆的。

修改的按键为

  • a (添加) 允许创建文件或文件夹,创建文件夹是在名称后加一个斜杠 /。例如,/nvchad/nvimtree.md 将创建相关的 markdown 文件,而 /nvchad/nvimtree/ 将创建 nvimtree 文件夹。创建将默认发生在文件浏览器中光标所在的位置,因此需要提前选择要创建文件的文件夹,或者您可以在状态栏中写出完整路径,在写入路径时,您可以利用自动完成功能。
  • r (重命名) 用于将选定文件从原始名称重命名。
  • Ctrl + r 用于重命名文件,无论其原始名称是什么。
  • d (删除) 用于删除选定文件,或者在是文件夹的情况下,删除该文件夹及其所有内容。
  • x (剪切) 用于将选择的内容剪切并复制到剪贴板,可以是文件或文件夹及其所有内容,使用此命令与粘贴命令一起执行,您可以在树中移动文件。
  • c (复制) 与上一个命令类似,它将文件复制到剪贴板,但将原始文件保留在其位置。
  • p (粘贴) 用于将剪贴板的内容粘贴到当前位置。
  • y 用于仅将文件名复制到剪贴板,还有两个变体,分别是 Y 用于复制相对路径,以及 g + y 用于复制绝对路径。

高级功能

虽然默认情况下已禁用,但 nvimtree 集成了某些功能来控制可能的 Git 存储库。此类功能通过使用覆盖基本设置来启用,如 模板 Chadrc 页面上的覆盖部分所述。

相关代码如下

M.nvimtree = {
    git = {
        enable = true,
    },
    renderer = {
        highlight_git = true,
        icons = {
        show = {
            git = true,
            },
        },
    },
    view = {
        side = "right",
    },
}

启用 Git 功能后,我们的文件树将实时显示本地文件相对于 Git 存储库的状态。

结论

kyazdani42/nvim-tree.lua 插件为 Neovim 编辑器提供了文件浏览器,这无疑是 NvChad IDE 的基本组成部分之一,所有常见的文件操作都可以通过它执行。它还集成了高级功能,但必须启用这些功能。更多信息可以在 项目页面 上找到。

作者:Franco Colussi

贡献者:Steven Spencer、Ganna Zhyrnova