我正在学习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个命令时有什么不同?
“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 的“原生”概念,但“(项目)根目录”的概念则不是。编辑器本身没有任何“项目”的概念,因此决定什么构成“(项目)根目录”的负担落在了构成“发行版”的各种插件的肩上。