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 以关闭文件浏览器
注意
使用 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 存储库。此类功能通过使用覆盖基本设置来启用,如 模板 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