Exploring
首页
  • Java

    • 面向对象的思想OOP
    • 浅谈Java反射原理
    • endorsed覆盖JDK中的类
  • 认证与授权

    • LDAP概念和原理介绍
    • OAuth2介绍
  • Impala

    • Impala 介绍
  • MySQL

    • 关于MySQL的一些面试题
    • 解决MySQL不到中文数据
    • 数据库之事务与实现原理
  • Oracle

    • oracle的表空间,用户管理,表操作,函数
    • oracle的查询、视图、索引
    • plsql简单入门
  • Redis

    • 数据类型详解
    • 跳越表
    • 数据持久化的两种方式
  • 共识算法

    • gossip
  • RPC

    • GRPC初识与快速入门
    • ProtocolBuffer基本语法
  • RabbitMQ

    • RabbitMQ入门程序之HelloWorld
    • RabbitMQ之工作模式
  • Zookeeper

    • Zookeeper一文入门
  • Docker

    • Docker入门初体验
  • Maven

    • 把自己的包到Maven中央仓库
    • Maven之自定义插件
  • Nginx

    • nginx的安装
    • nginx的配置文件
    • nignx 的变量
  • Tomcat

    • Servlet3通过SPI进行注册组件
  • Vagrant

    • vagrant 初始化
    • vagrant 常用配置
    • vagrant 自己制作 box
  • Linux

    • 启动方式 Systemd
    • 后台服务
    • 防火墙与 Iptables
  • 设计模式

    • 设计模式-代理
    • 设计模式-单例模式
    • 设计模式-迭代器
  • 分布式

    • CAP 理论
  • 数据结构

    • 数据结构之堆Heap
    • 数据结构之哈希表
    • 数据结构之队列
  • 计算机网络

    • HTTP与HTTPS详解
    • 浅谈DNS协议
    • ISP中的网络层
  • 算法

    • 常用查找算法及Java实现
    • 常用排序算法及Java实现
    • 迪杰斯特拉算法
  • 操作系统

    • 操作系统之进程调度算法
    • 操作系统之进程通讯IPC
    • 操作系统之内存管理
  • 抓包

    • 生成安卓系统证书
  • 加解密

    • 常见加密算法
    • 公开秘钥基础知识
    • RSA 解析
  • Windows

    • scoop 包管理
    • windows-terminal 配置
    • 增强 PowerShell
归档
Github (opens new window)
首页
  • Java

    • 面向对象的思想OOP
    • 浅谈Java反射原理
    • endorsed覆盖JDK中的类
  • 认证与授权

    • LDAP概念和原理介绍
    • OAuth2介绍
  • Impala

    • Impala 介绍
  • MySQL

    • 关于MySQL的一些面试题
    • 解决MySQL不到中文数据
    • 数据库之事务与实现原理
  • Oracle

    • oracle的表空间,用户管理,表操作,函数
    • oracle的查询、视图、索引
    • plsql简单入门
  • Redis

    • 数据类型详解
    • 跳越表
    • 数据持久化的两种方式
  • 共识算法

    • gossip
  • RPC

    • GRPC初识与快速入门
    • ProtocolBuffer基本语法
  • RabbitMQ

    • RabbitMQ入门程序之HelloWorld
    • RabbitMQ之工作模式
  • Zookeeper

    • Zookeeper一文入门
  • Docker

    • Docker入门初体验
  • Maven

    • 把自己的包到Maven中央仓库
    • Maven之自定义插件
  • Nginx

    • nginx的安装
    • nginx的配置文件
    • nignx 的变量
  • Tomcat

    • Servlet3通过SPI进行注册组件
  • Vagrant

    • vagrant 初始化
    • vagrant 常用配置
    • vagrant 自己制作 box
  • Linux

    • 启动方式 Systemd
    • 后台服务
    • 防火墙与 Iptables
  • 设计模式

    • 设计模式-代理
    • 设计模式-单例模式
    • 设计模式-迭代器
  • 分布式

    • CAP 理论
  • 数据结构

    • 数据结构之堆Heap
    • 数据结构之哈希表
    • 数据结构之队列
  • 计算机网络

    • HTTP与HTTPS详解
    • 浅谈DNS协议
    • ISP中的网络层
  • 算法

    • 常用查找算法及Java实现
    • 常用排序算法及Java实现
    • 迪杰斯特拉算法
  • 操作系统

    • 操作系统之进程调度算法
    • 操作系统之进程通讯IPC
    • 操作系统之内存管理
  • 抓包

    • 生成安卓系统证书
  • 加解密

    • 常见加密算法
    • 公开秘钥基础知识
    • RSA 解析
  • Windows

    • scoop 包管理
    • windows-terminal 配置
    • 增强 PowerShell
归档
Github (opens new window)
  • Windows

    • scoop 包管理
    • windows-terminal 配置
    • 打造好用的PowerShell媲美oh-my-zsh
      • 简介
      • 安装 PowerShell 7
        • 推荐安装
        • 设置环境变量
      • 终端选择
      • 增强
        • 字体安装
        • Oh-My-Posh
        • 历史命令提示
        • 目录跳转
        • Vim
        • 配置代理
        • Sudo
        • 移除 Logo
      • 最终配置
  • 工具
  • Windows
unclezs
2021-01-02
0
目录

打造好用的PowerShell媲美oh-my-zsh

# 简介

windows下面的CMD控制台很难用,也很丑,但是 wndows 后面出了个 powershell,用着还是不错,但是还是丑,并且有些功能高效功能不具备,比如 git 分支显示,历史命令提示。

在 windows 下用了 oh-my-zsh 后,用着十分的舒服。所以在 windows 上寻找了一样的结局方案。利用powershell 打造属于 windows 的强劲终端

image-20220528165814824

# 安装 PowerShell 7

# 推荐安装

自己维护一个文件夹来放绿色应用,便重装系统

powhershell github release page (opens new window)

直接下载一个 zip 包,并且解压到自己想放的文件夹里面。如我的在

D:\apps\powershell

在这个文件夹里面创建一个 Profile.ps1文件

# 设置环境变量

设置一个 PSHOME 环境变量,并且把 PSHOME 加入 PATH ,让 PS 可以读取到,具体可以看看这个Profile 文件的读取顺序 (opens new window)。

notepad $profile.AllUsersAllHosts

# 在里面加入
$global:profiles = "$PSHOME\Profile.ps1"
1
2
3
4

这样以后就可以直接 notepad $profiles 打开配置文件了

# 终端选择

  • Fluent Terminate (opens new window)
  • Terminus (opens new window)
  • Hyper,挺好用的,就是感觉 BUG 比较多..
  • Windows Terminal (微软应用商店)(我的选择)
  • ...

其实 windows 自带的也是可以的,不过用着总是不算那么舒服

# 增强

本节就来改造下 PowerShell,简称 pwsh。

# 字体安装

需要安装 PowerLine 字体来显示一些特殊字符

# clone
git clone https://github.com/powerline/fonts.git --depth=1
# install
cd fonts
./install.sh
1
2
3
4
5

再将终端字体设置为 Meslo LG S DZ for PowerLine

# Oh-My-Posh

Oh My Posh 是一个自定义提示引擎,适用于任何能够使用函数或变量调整提示字符串的 shell

oh-my-posh 官方文档 (opens new window)

# 安装
scoop install https://github.com/JanDeDobbeleer/oh-my-posh/releases/latest/download/oh-my-posh.json
# 更新
scoop update oh-my-posh
1
2
3
4

首先在 pwsh中输入 $profile 并回车,Posh 会输出你当前使用的 Profile 文件地址,打开该文件(若没有就需要新建),在该文件中写入以下内容。

或者直接使用:

notepad $profile
1

编辑保存,写入:

oh-my-posh init pwsh --config "$(scoop prefix oh-my-posh)\themes\ys.omp.json" | Invoke-Expression
1

保存之后重启posh即可看到效果

image-20220528141355117

# 历史命令提示

通过PSReadLine (opens new window)实现zsh-autosuggestions插件的功能。

安装:

Install-Module -Name PowerShellGet -Force
1

在主题配置文件后加入

Import-Module PSReadLine
# 设置预测文本来源为历史记录
Set-PSReadLineOption -PredictionSource History 
# 设置 Tab 为菜单补全和 Intellisense
Set-PSReadLineKeyHandler -Key "Tab" -Function MenuComplete
# 每次回溯输入历史,光标定位于输入内容末尾
Set-PSReadLineOption -HistorySearchCursorMovesToEnd 
# 设置向上键为后向搜索历史记录
Set-PSReadLineKeyHandler -Key UpArrow -Function HistorySearchBackward 
# 设置向下键为前向搜索历史纪录
Set-PSReadLineKeyHandler -Key DownArrow -Function HistorySearchForward 
1
2
3
4
5
6
7
8
9
10
11

image-20220528162544716

# 目录跳转

ZLocation (opens new window)和 autojump 差不多效果。快速 cd 到历史去过的目录。

Install-Module ZLocation -Scope CurrentUser
1

image-20220528165429349

# Vim

# 安装
scoop install vim
1
2

乱码问题解决

在 vim 安装目录,如 C:\Users\unclezs\scoop\apps\vim\8.2.2824 中的 _vimrc(无则创建)里面加入下面的就行。

set fileencodings=utf-8,ucs-bom,cp936,big5
set fileencoding=utf-8
1
2

# 配置代理

set ALL_PROXY=http://127.0.0.1:7890
1

# Sudo

具体查看:https://github.com/gerardog/gsudo (opens new window)

通过scoop安装:

scoop install gsudo
1

安装之后就可以使用 sudo 执行管理员权限了。

# 移除 Logo

启动参数里面加上 -nologo 即可,则可以不显示每次打开的那个 PowerShell 的欢迎语了。

pwsh.exe -nologo
1

# 最终配置

$global:profiles = "$PSHOME\Profile.ps1"

# oh-my-posh
oh-my-posh init pwsh --config "$(scoop prefix oh-my-posh)\themes\ys.omp.json" | Invoke-Expression

# PSReadLine
Import-Module PSReadLine
# 设置预测文本来源为历史记录
Set-PSReadLineOption -PredictionSource History 
# 设置 Tab 为菜单补全和 Intellisense
Set-PSReadLineKeyHandler -Key "Tab" -Function MenuComplete
# 每次回溯输入历史,光标定位于输入内容末尾
Set-PSReadLineOption -HistorySearchCursorMovesToEnd 
# 设置向上键为后向搜索历史记录
Set-PSReadLineKeyHandler -Key UpArrow -Function HistorySearchBackward 
# 设置向下键为前向搜索历史纪录
Set-PSReadLineKeyHandler -Key DownArrow -Function HistorySearchForward 

# 代理配置
set ALL_PROXY=http://127.0.0.1:7890
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
在 GitHub 编辑此页 (opens new window)
上次更新: 2024/02/25, 12:11:11
windows-terminal 配置

← windows-terminal 配置

Theme by Vdoing | Copyright © 2018-2024 unclezs
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式