双系统切换来切换去还是挺麻烦的。加上 Windows Terminal + PowerShell 的体验越来越好于是去年年底把 Arch Linux 彻底卸掉了。本身不是专业的,在终端里最多就是批处理一下文件,PowerShell 开箱即用虽然挺糟糕,但是调教一下还是够用了。
PSReadLine 是 PowerShell 的官方模块,为 PowerShell 提供了缺失的交互特性。例如像 zsh/fish 那样的交互式的补全、语法高亮、emacs 按键模式等等。有了 PSReadLIne 之后的 PowerShell 才终于像点样了。
安装(详见官方项目 README):
Install-Module PSReadLine
安装之后,PSReadLine 的一些特性并不会自动启用,可以在 PowerShell 的 profile 配置文件里自己按需配置。但是自己从头搞毕竟很烦,直接白嫖官方提供的配置样例就可以,已经非常好用了。
posh-git 可以为 PowerShell 提供 git 命令补全。oh-my-posh 可以美化 prompt,提供各种主题。直接把两个一起安上:
Install-Module posh-git -Scope CurrentUser
Install-Module oh-my-posh -Scope CurrentUser
在 profile 配置文件中启用模块并选择 prompt 样式主题:
Import-Module posh-git
Import-Module oh-my-posh
Set-Theme Powerlevel10k-Lean
主要是配置字体和配色方案。配色方案可以在 iTerm2-Color-Schemes 这个项目中挑选。个人比较喜欢 Gruvbox Dark 配色。
在 Windows Terminal 配置文件中加入 Gruvbox Dark 配色方案。
"schemes": [
{
"name": "Gruvbox Dark",
"black": "#1e1e1e",
"red": "#be0f17",
"green": "#868715",
"yellow": "#cc881a",
"blue": "#377375",
"purple": "#a04b73",
"cyan": "#578e57",
"white": "#978771",
"brightBlack": "#7f7061",
"brightRed": "#f73028",
"brightGreen": "#aab01e",
"brightYellow": "#f7b125",
"brightBlue": "#719586",
"brightPurple": "#c77089",
"brightCyan": "#7db669",
"brightWhite": "#e6d4a3",
"background": "#1e1e1e",
"foreground": "#e6d4a3"
}
]
在 PowerShell 的 profile 部分选择 Gruvbox Dark 作为配色方案。同时做一些其他调整(因为 Windows Terminal 支持字体 ligature,所以选择了 Fira Code 字体):
{
// Make changes here to the powershell.exe profile
"guid": "{61c54bbd-c2c6-5271-96e7-009a87ff44bf}",
"name": "Windows PowerShell",
"commandline": "powershell.exe",
"hidden": false,
"fontFace": "Fira Code",
"fontSize": 11,
"colorScheme": "Gruvbox Dark",
"cursorShape": "vintage"
}
文章里的图片好像挂了。补充两张预览图。
1
wzxlovesy 2020-03-01 05:40:07 +08:00 via Android
图好像挂了?
|
2
leido 2020-03-01 06:39:49 +08:00 via Android
感谢楼主分享,我是 win10 用 wsl 配合 ubuntu,安装了 oh my zsh,基本满足需求
|
3
nightwitch 2020-03-01 08:11:10 +08:00
不加 alias 的 powershell 命令又臭又长,不翻 msdn 根本记不住
|
4
Chingim 2020-03-01 08:33:39 +08:00 via Android
用 powershell 的都是大佬,只会 bash
|
5
laincat 2020-03-01 09:00:36 +08:00
没看到有图啊?
|
6
huiyifyj 2020-03-01 09:16:57 +08:00 via Android
@nightwitch #3
不会啊,命令基本是 动词-名词 形式,记住动词和名词的前几个字母,tab 键就 OK 啊 |
9
lovedebug 2020-03-01 09:49:47 +08:00
折腾过,现在耐心等 wsl2 然后 bash 搞起来
|
10
Tumblr 2020-03-01 09:56:38 +08:00
没 PSReadLine 我都不会用了 😂
目前 PowerShell 的模块越来越多了,包括正在 alpha 阶段的 Secrets Management,包括第三方的 ImportExcel 以及各行业相关的( vmware、mssql、mysql、oracle 等等),确实在非常快速地成长。 |
11
leido 2020-03-01 10:09:02 +08:00
@zchlwj wsl 是 Windows Subsystem for Linux,Linux 终端就像普通 windows 应用一样用
|
13
Varobjs 2020-03-01 13:25:21 +08:00
IDE 自带 terminal 够我用了
|
14
visitantzj 2020-03-01 14:31:34 +08:00
@nightwitch powershell 的"动词-对象"/alias 的命令名称设计我觉得简直天才,只要掌握几个基本的词后根本不用记命令
linux terminal 一段时间不用还得 help/man 一下,powershell 是随手就可以捡起来用 |
15
huiyifyj 2020-03-01 14:56:16 +08:00
@visitantzj #14
确实,这样更接近自然语言。而且 bash 脚本麻烦的一点就是一个脚本一个文件,PowerShell 倒是可以多个文件运行一个脚本(再加上模块化的支持,就显得更容易处理复杂的脚本任务)。 |
16
james122333 2020-03-01 15:08:59 +08:00
|
17
james122333 2020-03-01 15:11:33 +08:00
基本上只是一堆人不会用罢了 (滑稽) 模块化什么的小需求的东西
|
18
james122333 2020-03-01 15:12:11 +08:00
虽然如此我还是不会公开的
|
19
DelayNoMay 2020-03-01 15:40:22 +08:00
还是喜欢用虚拟机,迁移方便
|
20
jin7 2020-03-02 00:04:12 +08:00
天生就会用 bash? 还不是要先学几个命令. powershell 也一样.
勿喷 讨厌 powershell 讨厌微软 和我没关系 |
21
james122333 2020-03-02 21:15:53 +08:00
|
22
ps1aniuge 2020-03-03 14:34:23 +08:00
@nightwitch 命令长,按 tab 啊,
|