1
zzz22333 2022-06-13 11:29:58 +08:00 via Android
oh my powershell 还不错
|
2
xwcs 2022-06-13 11:43:25 +08:00
psreadline 自带了
Set-PSReadLineOption -PredictionSource HistoryAndPlugin https://docs.microsoft.com/en-us/powershell/module/psreadline/set-psreadlineoption?view=powershell-7.2 |
3
wdssmq 2022-06-13 11:48:53 +08:00 1
|
4
Buges 2022-06-13 12:02:08 +08:00 via Android
以前用 Windows 的时候用 msys2 里的 fish ( zsh 配合插件性能太差了),PowerShell 的补全跟提示倒不是没有,但效果太差。
|
5
MEIyiyi OP 呼,谢谢各位,我看看哪个合适
|
6
ysc3839 2022-06-13 12:39:18 +08:00 via Android
Windows 有 zsh ,可以用 Cygwin 或 MSYS2 。
@Buges 个人使用 Oh My Zsh 以及 zsh-autosuggestions 和 zsh-syntax-highlighting 这两个插件,主题使用的是 powerlevel10k ,感觉上性能并不差。 |
7
Huelse 2022-06-13 12:50:41 +08:00
|
8
a33291 2022-06-13 13:25:31 +08:00
nushell
|
9
sky96111 2022-06-13 13:50:00 +08:00
@Buges PowerShell 补全最大的问题就是只有带枚举参数的 PS 函数才能补全,其他的只能补全路径。要是和 fish 、zsh 那样支持添加补全规则会好得多
|
10
Buges 2022-06-13 14:19:49 +08:00 via Android
|
11
shuax 2022-06-13 14:20:55 +08:00 1
|
12
sulinwork 2022-06-13 16:29:14 +08:00
wsl2 + zsh 很香
|
13
Kasumi20 2022-06-13 16:36:47 +08:00
#11 没错,就是这个,clink ,贼好用,直接把 cmd 给干碎了
Microsoft Windows [版本 10.0.19041.1415] (c) Microsoft Corporation 。保留所有权利。 Clink v1.3.7.4269ce Copyright (c) 2012-2018 Martin Ridgers Portions Copyright (c) 2020-2022 Christopher Antos https://github.com/chrisant996/clink C:\Users\xx> |
14
bigtear 2022-06-13 18:50:42 +08:00
clink
|
15
sky96111 2022-06-13 18:54:33 +08:00 via Android
@Buges scoop 和 git 都只有文件路径补全,开启 PS Readline 也一样。我稍微研究过一下 pwsh 函数参数的补全,想要参数补全必须
1. 命令是一个 PS 函数 2. 参数是枚举体 scoop 虽然是用 PS 语法写的,但是一个 ps1 脚本不是函数,故没法补全。git 是单独的 exe ,就更不能了。 所以为第三方命令写补全插件,得把它包装成函数放到$profiles 里,太麻烦了 https://github.com/sky96111/pwsh_dotfile/blob/main/Microsoft.PowerShell_profile.ps1 |
16
ysc3839 2022-06-13 19:22:15 +08:00
@Buges 启动新进程确实是慢,但是好的插件并不会启动大量进程。我目前使用的这几个插件也就启动时会慢一点,但是 powerlevel10k 有 Instant prompt 功能,在等待其他插件启动时就能先显示出提示符。powerlevel10k 显示 git 信息是在后台一直运行一个 gitstatusd 进程,并不会很慢。
|
17
darklights 2022-06-13 19:39:07 +08:00
|
18
EastLord 2022-06-13 19:50:54 +08:00
|
19
Buges 2022-06-13 19:54:26 +08:00 via Android
@sky96111 需要安装第三方的补全模块,并在你的 PowerShell profile 里加载。这点和 zsh/fish 是一样的。
https://github.com/Moeologist/scoop-completion @ysc3839 这不是写的好能避免的,shell 编程中很多操作都需要组合各种外部工具( unix 哲学),这就意味着不断的创建新进程。 不过现在已经很久没有用 Windows 了,换成 GNU/linux 后命令行方面真的是省心太多。 |
20
heart4lor 2022-06-13 19:57:28 +08:00
MSYS2 装 fish shell ,当然也可以 zsh
|
21
ysc3839 2022-06-13 20:03:01 +08:00 via Android
@Buges 把开销大的程序作为后台服务运行,这就是一种避免的方案。更高级的 shell 也会把一些频繁使用到的功能内置进来,比如 bash 就内置了正则表达式。而且上述几个插件,我个人使用感受并不如你所说的连补全都要几秒。
个人建议还是自己体验看看能否接受,不要仅仅是一顿理论分析就否定。 相比选择 PowerShell 等其他方案,选择 Unix shell 往往有更好的生态,跨平台的统一体验。不需要记忆 PowerShell 繁琐的命令,也不像 cmd 那样缺失各种功能。 |
22
aaniao002 2022-06-13 20:16:37 +08:00 via Android
wsl 呀,你想啥呢。windows 命令行那也叫命令行?
|
23
Buges 2022-06-13 20:18:00 +08:00 via Android
@ysc3839 关键在于*nix 下正常情况创建进程开销不大,只有 cygwin 模拟层下才有明显性能问题,所以很难指望这些脚本针对性优化,不如换 fish 拉倒。
可能我之前 scoop 装的命令比较多,scoop 对每个程序都创建好几个启动 shim (.exe .bat .ps1 sh 脚本),tab 补全应用列表要好几秒才出来。 |
24
ysc3839 2022-06-13 20:29:56 +08:00 via Android
@Buges 但是实际上是有的插件确实会针对性优化,所以我说好的插件是能避免。如果你刚需的插件都写得不好,那确实是没什么办法了,但至少我自己用到的插件没这么多问题。
而且不仅 Windows ,macOS 下使用 fork 也会比使用 posix_spawn 慢。 坏的插件在 Unix 下也会拖慢速度 https://blog.skk.moe/post/make-oh-my-zsh-fly/ |