Skip to content

Conversation

@clsty
Copy link
Contributor

@clsty clsty commented Sep 18, 2025

作用

让 Nix 新手更容易理解这份教程。

背景

我第一次尝试学习 Nix 时使用的资料是 NixOS & Flakes Book,其中Nix 语言入门提到:

NixOS-CN 社区已经有了一份不错的 Nix 语言教程,我不打算重复造轮子,请直接阅读Nix 语言概览 - NixOS-CN 来快速入门。

打开这个页面后,交互模式还好,但是当我读到下面这句

在上面的例子中,我们输入了一个匿名集合,而这个匿名集合包含 a 集合。

我完全无法理解:匿名集合在这里指的是什么?a 集合又指的是什么?
即使我打算暂时放下问题,读读接下来的段落,或许就能理解前面的问题了,但完全不行,疑惑甚至越来越多了。

以上所述的入门失败大概已经是一年前的事了。

前不久我打算再次挑战 Nix 入门,这次我选择的教程是 Evertras/simple-homemanager,并且顺利地阅读到了结尾。只不过,它的内容深度有限,稍微深入的内容还是需要其它资源。

于是我再次想起了《Nix 语言快速入门》,而这次我终于能理解它在说什么了,并且也明白了对于真正的 Nix 新手来说,它所缺少的基础知识是什么,于是就有了这个 PR。

Added examples of collections in Nix syntax, demonstrating how to define collections and nested attributes.
@clsty
Copy link
Contributor Author

clsty commented Sep 18, 2025

好吧,刚才我看到下面有这样一段:

还记得我们在上面提到的集合吗?其实它真正的名字是属性集,没有过早引入属性集的概念是为了方便读者渐进式地理解。

(真的很想吐槽:哪里方便了?还没到这里就已经结束了,我谢谢您嘞~)

话虽如此,此 PR 我认为还是有必要的,只是内容可以更精简一些,直接提示读者即可。

@ryan4yin ryan4yin merged commit 694cf09 into NixOS-CN:main Sep 18, 2025
@ryan4yin
Copy link
Member

我看了下,确实这个语言教程前面的 即时计算被直接依赖的值文件求值、以及后面对词法、句法、语法的详细说明,对单纯的「Nix 语言入门」而言都显得不是很有必要,有点分散了注意力,你的修改很有必要,感谢贡献!

另外这份文档很久没人动过了,你如果有兴趣的话可以试试对它做一次大修,我帮你 review.

@ryan4yin
Copy link
Member

顺便我就是 NixOS & Flakes Book 的作者,其实之前我也写过一份很简单的 Nix 语言入门教程,但是有人反馈说对新手不太友好,而且我确实也写得比较简略,所以后面才改成推荐阅读这一份。

我之前写的内容也可供参考: https://github.com/ryan4yin/nixos-and-flakes-book/blob/76427ef446926ce01a5c6ebc7fb402e3232c2e18/docs/zh/the-nix-language/index.md

@clsty
Copy link
Contributor Author

clsty commented Sep 18, 2025

另外这份文档很久没人动过了,你如果有兴趣的话可以试试对它做一次大修,我帮你 review.

可以的,我向来对这种事感兴趣,可以边学边做。预计两周内能够完成。

顺便我就是 NixOS & Flakes Book 的作者

我知道的,谢谢你写的指南,能在这里看到你我也感到惊喜与荣幸。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants