强化win10下的命令行 - 颜值和实用并存
更新时间:2021-01-03 20:18:15
2021-10-21 10:40:57
- 增加 PSReadLine 插件
2021-01-04 10:49:08
- 抄了更多小马哥的文章!!!
2021-01-03 20:18:15
- 增加
PSColor
模块安装说明- 发现一个很好的文章 PowerShell 美化指南 by 小马哥
0x1 安装 Windows Terminal
在 Microsoft Store 中下载 Windows Terminal
注意系统要求
0x2 安装 PowerShell core
下载地址:https://github.com/PowerShell/PowerShell/releases
win10选择 PowerShell-7.1.0-preview.7-win-x64.msi
这种安装即可
0x3 安装字体(可选)
FiraCode - 连字符字体
JetBrainsMono - IDEA 系字体
0x4 安装 PowerShell 模块
通过在 PowerShell 中执行下面的命令安装, 以超级管理员运行 PowerShell
右键桌面空白的地方选择 PowerShell > Open Here as Administrator
CurrentUser 是仅为当前用户安装模块
安装过程中加上 -Verbose
可以看到输出
注意事项
如果出现 PowerShell 因为在此系统上禁止运行脚本…
# 更改执行策略
set-ExecutionPolicy RemoteSigned
# 查看执行策略
get-ExecutionPolicy
如果在安装过程中遇到类似于这样的提示
不受信任的存储库你正在从不受信任的存储库安装模块。如果你信任该存储库,请通过运行 Set-PSRepositorycmdlet 更改其 InstallationPolicy 值。是否确实要从“PSGallery”安装模块?[Y] 是(Y) [A] 全是(A) [N] 否(N) [L] 全否(L) [S] 暂停(S) [?] 帮助
你可以按 Y 或 A 键,但是如果你觉得每次都这样麻烦的话,可以先执行下面的命令:
Set-PSRepository -Name PSGallery -InstallationPolicy Trusted
之后再安装模块就不会出现这个提示了。
如果下载慢的话可以使用命令行代理
命令行下载依旧很慢的可以试试全局科学上网!!!
# 设置代理(填写你本地的端口)
netsh winhttp set proxy 127.0.0.1:1080
# 取消代理
netsh winhttp reset proxy
# 查看代理
netsh winhttp show proxy
# clash
$Env:http_proxy="http://127.0.0.1:7890";$Env:https_proxy="http://127.0.0.1:7890"
参数说明
# -Scope CurrentUser 安装在当前用户作用域下
Install-Module posh-git -Scope CurrentUser
# -Verbose 输出日志
Install-Module posh-git -Scope CurrentUser -Verbose
posh-git
Install-Module posh-git
oh-my-posh
Install-Module oh-my-posh
PSColor
在默认情况下, PowerShell 的文件列表并不会彩色显示。
想要文件列表彩色显示的话,最简单的方法就是安装一个 PowerShell 模块:PSColor。
这个模块安装使用都很简单,打开 Windows PowerShell 管理员控制台,输入:
Install-Module PSColor
DirColors
Install-Module DirColors
哪些文件类型可以被加亮显示是可以配置的,在 PSColor 官方的 README 中有介绍,这里就不转述了。不过这个配置方式是 PowerShell 式的,如果能直接像上面使用 itermcolors 文件配置控制台色彩一样,直接用 Linux 平台上的现成的 dircolors 配置文件的话,会不会更方便呢?这个想法很好,而且还真的有人实现了,它就是 DirColors。
这也是一个 PowerShell 模块,安装方式跟 PSColor 一样,使用:
Install-Module DirColors
导入该模块。接下来,如果你想要载入某个现成的 dircolors 配置文件的话,只需要用:
Update-DirColors ~\dir_colors
这条命令就可以了。
其中 ~\dir_colors
就是配置文件的路径,关于 dir_colors 的配置文件,在 github 上可以搜到不少,比如:dircolors-solarized。这里就不再列举更多了。
PSReadLine
如果是使用自带的 powershell,先执行
Install-Module -Name PowerShellGet -Force
Exit
然后安装
Install-Module PSReadLine -AllowPrerelease -Force
# 稳定版本
Install-Module PSReadLine
0x5 配置 PowerShell
字体配置
模块配置
0x1 输入:
$PROFILE
# C:\Users\SunSeekerX\Documents\PowerShell\Microsoft.PowerShell_profile.ps1
0x2 继续输入:
if (!(Test-Path -Path $PROFILE )) {
New-Item -Type File -Path $PROFILE -Force }
notepad $PROFILE
0x3 在打开的文件中添加: Set-PoshPrompt Paradox 是设置默认主题
以前为 Set-Theme
该文件是每次启动 PowerShell 执行的文件,加载两个模块和设置主题。
其他可选主题有
Agnoster、Avit、Darkblood、Fish、Honukai、Paradox、Sorin、tehrob, PowerLine
# Import Modules BEGIN
# 引入 DirColors
Import-Module DirColors
# 引入 posh-git
Import-Module posh-git
# 引入 oh-my-posh
Import-Module oh-my-posh
# 引入 ps-read-line
Import-Module PSReadLine
# 设置 PowerShell 主题
Set-PoshPrompt Paradox
# Import Modules END
# Set Hot-keys BEGIN
# 设置预测文本来源为历史记录
Set-PSReadLineOption -PredictionSource History
# 每次回溯输入历史,光标定位于输入内容末尾
Set-PSReadLineOption -HistorySearchCursorMovesToEnd
# 设置 Tab 为菜单补全和 Intellisense
Set-PSReadLineKeyHandler -Key "Tab" -Function MenuComplete
# 设置 Ctrl+d 为退出 PowerShell
Set-PSReadlineKeyHandler -Key "Ctrl+d" -Function ViExit
# 设置 Ctrl+z 为撤销
Set-PSReadLineKeyHandler -Key "Ctrl+z" -Function Undo
# 设置向上键为后向搜索历史记录
Set-PSReadLineKeyHandler -Key UpArrow -Function HistorySearchBackward
# 设置向下键为前向搜索历史纪录
Set-PSReadLineKeyHandler -Key DownArrow -Function HistorySearchForward
# Set Hot-keys END
0x4 保存后关闭记事本, 在终端中输入以下命令生效(这里不要照抄 下面执行的 是 上文中$PROFILE的值)
C:\Users\SunSeekerX\Documents\PowerShell\Microsoft.PowerShell_profile.ps1
0x5 切换主题
Set-Theme $主题名字
0x6 配置 Windows Terminal
配置主题配色
0x1 打开配置文件 setting.json
0x2 参考以下配置
可自行修改,一定要符合json的内容格式,不然会报错,还有就是图片的的路径要与己系统对应
改的比较多的就是 profiles > defaults
和 schemes
,前者是启动的配置,后者是主题配色。
下面的配置不要全部复制,可以选择性的更改你的配置!
{
"$schema": "https://aka.ms/terminal-profiles-schema",
"actions": [
{
"command": {
"action": "copy",
"singleLine": false
},
"keys": "ctrl+c"
},
{
"command": "find",
"keys": "ctrl+shift+f"
},
{
"command": "paste",
"keys": "ctrl+v"
},
{
"command": {
"action": "splitPane",
"split": "auto",
"splitMode": "duplicate"
},
"keys": "alt+shift+d"
}
],
"copyFormatting": "none",
"copyOnSelect":