NvimTree - 文件浏览器¶
一个编辑器,要实现功能,必须支持打开和管理我们要编写或编辑的文件。Neovim 在其基本安装中不提供文件管理功能。这由 NvChad 使用 kyazdani42/nvim-tree.lua 插件实现。该插件提供了一个文件浏览器,您可以通过键盘按键在其中对文件执行所有最常见的操作。要打开它,您可以使用组合键 Ctrl + n,该组合键仅在 NORMAL 模式下可用,并且使用相同的组合键可以关闭它。
如果我们安装了 Nerd Fonts,正如截图所示,我们将拥有一个文件浏览器,尽管它是文本形式的,但它会为我们提供文件树的图形表示。
打开后,我们可以使用组合键 Ctrl + h 向左移动,使用 Ctrl + l 向右移动,在浏览器窗口和编辑器窗口之间切换。
使用文件浏览器¶
要使用您项目的项目文件树,NvimTree 提供了一系列有用的快捷键来进行管理,它们是:
- R (刷新) 用于重新读取项目中包含的文件
- H (隐藏) 用于隐藏/显示隐藏文件和文件夹(以点
.
开头) - E (展开所有) 以根文件夹 (工作区) 为起点展开整个文件树
- W (折叠所有) 以根文件夹为起点关闭所有打开的文件夹
- - (向上目录) 允许您向上返回文件夹。此导航还允许您退出根文件夹 (工作区) 进入您的主目录
- s (系统) 使用为该文件类型设置的默认系统应用程序打开文件
- f (查找) 打开交互式文件搜索,可以应用搜索过滤器
- F 关闭交互式搜索
- Ctrl + k 显示文件信息,如大小、创建日期等。
- g + ? 打开帮助,其中包含所有预定义的快捷键,以便快速参考
- q 关闭文件浏览器
注意
使用 f 进行的交互式搜索,以及使用箭头 > < 进行的导航,都局限于 NvimTree 当前所在的文件夹。要对整个工作区进行全局搜索,您必须首先使用 E 打开整个文件树,然后使用 f 开始搜索。
搜索会将 NvimTree_1 缓冲区置于 INSERT 模式,以便输入过滤器。如果没有选择文件,退出搜索需要您先使用 Esc 将缓冲区返回到 NORMAL 模式,然后再使用 F 关闭搜索。
选择文件¶
要选择一个文件,我们首先需要确保我们处于状态栏中以 NvimTree_1 高亮的 nvimtree 缓冲区中。为此,我们可以使用上面提到的窗口选择键,或者 NvChad 提供的特定 Space + e 命令,该命令会将光标定位在文件树中。此组合键是 NvChad 默认映射的一部分,对应于插件的 :NvimTreeFocus
命令。
要遍历文件树,我们提供了 > 和 < 键,它们允许我们沿着树向上和向下移动,直到到达所需的文件夹。一旦定位,我们可以使用 Enter 打开它,并使用 BS 关闭它。
必须强调的是,使用 > 和 < 键进行的导航始终指的是当前文件夹。这意味着一旦一个文件夹被打开并定位在其中,导航将局限于该文件夹。要退出文件夹,我们使用 Ctrl + p (父目录) 键,它允许我们从当前文件夹向上返回到我们打开编辑器的文件夹,并且该文件夹对应于右侧状态栏中定义的我们的工作区。
打开文件¶
定位到所需的文件夹并选中要编辑的文件后,我们有以下组合键来打开它:
- Enter 或 o 在新缓冲区中打开文件并将光标置于文件的第一行
- 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 仓库。通过覆盖基本设置可以启用这些功能,如 Template 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