Lazyvim 键盘映射:“cwd”和“root dir”有什么区别?

问题描述 投票:0回答:1

我正在学习lazyzim,我阅读了有关键盘映射的文档:

https://www.lazyvim.org/keymaps

我看到很多键映射都有 2 个版本(cwd 和 Root Dir),例如:

leader E    Explorer NeoTree (cwd)
leader fe   Explorer NeoTree (Root Dir)
leader ff   Find Files (Root Dir)
leader fF   Find Files (cwd)

我不知道2个版本有什么不同? 我知道“cwd”代表“当前工作目录”。 例如,我在~/projects/app1目录下打开

nvim .
,当我使用2个命令时有什么不同?

neovim lazyvim
1个回答
0
投票

“Cwd”是“当前工作目录”的缩写,这一点很清楚。

“Root Dir”不必要地含糊不清,因为所有文件系统都已经有一个“根目录”(在类 Unix 系统中为

/
),而“根目录”并不是所讨论的“根目录”。在这种情况下,“root dir”意味着“我当前项目的根目录”,通常通过查找
.git
目录或其他一些启发式方法来定义。

当您在 shell 中

cd
~/projects/app1
并执行
$ nvim .
时,“当前工作目录”和“(项目)根目录”是相同的,“Root Dir”变体和“cwd”都是相同的这些命令的变体将具有相同的效果。

之后,无论出于何种原因,您都可以执行类似

:cd components
的操作将“当前工作目录”更改为
~/projects/app1/components
,但“(项目)根目录”仍然是
~/projects/app1

因此,选择使用哪种映射取决于上下文和期望的结果:

  • 如果您想导航您的项目,请选择
    <leader>fe
  • 如果您想导航当前目录,请选择
    <leader>E
  • 如果您想在项目中查找文件,请选择
    <leader>ff
  • 如果您想在当前目录中查找文件,请选择
    <leader>fF

请注意,“工作目录”的概念是 Vim/Neovim 的“原生”概念,但“(项目)根目录”的概念则不是。编辑器本身没有任何“项目”的概念,因此决定什么构成“(项目)根目录”的负担落在了构成“发行版”的各种插件的肩上。

© www.soinside.com 2019 - 2024. All rights reserved.