这块我可以写一下。Elvish真心提升了shell脚本编程的体验。对于我来说:
- 跨平台 (主要是Linux / macOS / Windows + Rust实现的coreutils)
- 在Github Action中使用
- 在 Ansible 脚本中使用
这三个是主要的场景。然后平常写一些adhoc的代码,也非常爽。特别是有了 each / filter
如果能有比较好用的 pattern matching,那就更赞了
这块我可以写一下。Elvish真心提升了shell脚本编程的体验。对于我来说:
这三个是主要的场景。然后平常写一些adhoc的代码,也非常爽。特别是有了 each / filter
如果能有比较好用的 pattern matching,那就更赞了
@sadhen Elvish 和 Go 的互操作性很好,是可以用作 Go 程序的 embedded scripting language 的。像 math:
和 str:
里的大部分函数都是直接用 reflection 调用对应的 Go 的函数,没有任何 wrapper 的。
语法问题我不会刻意追求和别的语言的类似,毕竟不同用户背景不同,都要兼顾的话就变成四不像了。而且一个语言发展到一定程度就有自己的生命了,很多时候与其说是在设计更像是在求解。
Re #102:pattern matching 是我一直想做的,不过需要解决的设计问题很多。感觉不是不可或缺的功能,所以目前优先级不是很高吧。
多谢提醒。我回头试试看。PATH 确实比较乱
请教下 elvish 怎么在 Windows 系统上把这样的路径加入Path:
C:\Program Files (x86)\GnuPG\bin
我用下面的方法会报错,无法识别路径中的括号。
use platform
if (eq $platform:os windows) {
set paths = [
C:\Windows\System32
C:\Windows\System32\WindowsPowerShell\v1.0
C:\Program Files (x86)\GnuPG\bin
]
}
可以在Shell里面试一下双引号,单引号以及转义符\
。然后我推荐用Scoop安装GnuPG,这样能规避这个问题。另外,C:\Program Files
这类目录在Windows上面应该是可以直接用环境变量的。
Windows 这类路径确实烦人。
确实是可以用 $E:programfiles
表示路径 C:\Program Files
,但是 C:\Program Files (x86)
没法用 $E:programfiles(x86)
表示。
Windows CMD 下执行下面的命令:
echo %programfiles(x86)%
结果是: C:\Program Files (x86)
在Windows 下还是不可避免要用到这类路径的。
我想请教下,在Windows中,Navigation mode
中的文件色彩是如何设置?
rc.elv
中设置了环境变量set-env LS_COLORS (vivid generate dracula)
,按道理应该不会有这些高亮吧?
Nav mode 确实是根据 LS_COLORS 高亮的。这个绿背景应该是因为 Windows 下目录都是默认 world writable 的,你试试把 LS_COLORS 里面 ow 这一项去掉应该就没了(或者设成和 di 这一项一样)
将ow设置为di就好了