PowerShell 与 Windows Terminal 增强配置

2020-03-01 03:50:56 +08:00
 raawaa

双系统切换来切换去还是挺麻烦的。加上 Windows Terminal + PowerShell 的体验越来越好于是去年年底把 Arch Linux 彻底卸掉了。本身不是专业的,在终端里最多就是批处理一下文件,PowerShell 开箱即用虽然挺糟糕,但是调教一下还是够用了。

PSReadLine

PSReadLine 是 PowerShell 的官方模块,为 PowerShell 提供了缺失的交互特性。例如像 zsh/fish 那样的交互式的补全、语法高亮、emacs 按键模式等等。有了 PSReadLIne 之后的 PowerShell 才终于像点样了。

安装(详见官方项目 README):

Install-Module PSReadLine

安装之后,PSReadLine 的一些特性并不会自动启用,可以在 PowerShell 的 profile 配置文件里自己按需配置。但是自己从头搞毕竟很烦,直接白嫖官方提供的配置样例就可以,已经非常好用了。

posh-git 与 oh-my-posh

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

Windows Terminal 美化

主要是配置字体和配色方案。配色方案可以在 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"
}

9887 次点击
所在节点    PowerShell
22 条回复
wzxlovesy
2020-03-01 05:40:07 +08:00
图好像挂了?
leido
2020-03-01 06:39:49 +08:00
感谢楼主分享,我是 win10 用 wsl 配合 ubuntu,安装了 oh my zsh,基本满足需求
nightwitch
2020-03-01 08:11:10 +08:00
不加 alias 的 powershell 命令又臭又长,不翻 msdn 根本记不住
Chingim
2020-03-01 08:33:39 +08:00
用 powershell 的都是大佬,只会 bash
laincat
2020-03-01 09:00:36 +08:00
没看到有图啊?
huiyifyj
2020-03-01 09:16:57 +08:00
@nightwitch #3
不会啊,命令基本是 动词-名词 形式,记住动词和名词的前几个字母,tab 键就 OK 啊
TangMonk
2020-03-01 09:34:10 +08:00
@huiyifyj #6 还是不太习惯 powershell,bash 好用点。尽量用 wsl
zchlwj
2020-03-01 09:34:21 +08:00
@leido 这样是两台机器,环境什么的要配置两次,还是很麻烦
lovedebug
2020-03-01 09:49:47 +08:00
折腾过,现在耐心等 wsl2 然后 bash 搞起来
Tumblr
2020-03-01 09:56:38 +08:00
没 PSReadLine 我都不会用了 😂
目前 PowerShell 的模块越来越多了,包括正在 alpha 阶段的 Secrets Management,包括第三方的 ImportExcel 以及各行业相关的( vmware、mssql、mysql、oracle 等等),确实在非常快速地成长。
leido
2020-03-01 10:09:02 +08:00
@zchlwj wsl 是 Windows Subsystem for Linux,Linux 终端就像普通 windows 应用一样用
zchlwj
2020-03-01 10:26:30 +08:00
@leido  我在ide里面将默认终端改成过wsl,要配置两份环境变量,还是挺麻烦的
Varobjs
2020-03-01 13:25:21 +08:00
IDE 自带 terminal 够我用了
visitantzj
2020-03-01 14:31:34 +08:00
@nightwitch powershell 的"动词-对象"/alias 的命令名称设计我觉得简直天才,只要掌握几个基本的词后根本不用记命令

linux terminal 一段时间不用还得 help/man 一下,powershell 是随手就可以捡起来用
huiyifyj
2020-03-01 14:56:16 +08:00
@visitantzj #14
确实,这样更接近自然语言。而且 bash 脚本麻烦的一点就是一个脚本一个文件,PowerShell 倒是可以多个文件运行一个脚本(再加上模块化的支持,就显得更容易处理复杂的脚本任务)。
james122333
2020-03-01 15:08:59 +08:00
@huiyifyj

模块化什么的 bash 也可以做到 不熟悉罢了 基本上我看过很多人写的都奇差无比
james122333
2020-03-01 15:11:33 +08:00
基本上只是一堆人不会用罢了 (滑稽) 模块化什么的小需求的东西
james122333
2020-03-01 15:12:11 +08:00
虽然如此我还是不会公开的
DelayNoMay
2020-03-01 15:40:22 +08:00
还是喜欢用虚拟机,迁移方便
jin7
2020-03-02 00:04:12 +08:00
天生就会用 bash? 还不是要先学几个命令. powershell 也一样.
勿喷 讨厌 powershell 讨厌微软 和我没关系

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/648742

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX