windows11 terminal 和 shell 美化

    捯饬美化了一下 windows11 terminal 和 wsl 的 shell, 看起来顺眼多了, 浅浅记录一下. 先附上两张效果图. 首先是 terminal 的效果图, 博主比较喜欢简约风格, 没有什么太多花哨的东西.

    接下来是 wls 的 shell 效果图, shell 使用 bash 的 zsh , 如果可以显示分支名 Linux-sdk , git 修改的状态以及当前时间很方便美观.

一、windows terminal

    在应用商店搜索 Windows Terminal , 找到并安装. Windows Terminal 和 preview 都可以. 我用的 preview.

1、安装 oh-my-posh

oh-my-posh 就是一款用于 powershell 美化的工具, 自带很多主题. 参考官网的安装方法oh-my-posh window 安装, 首先运行下面命令安装 oh-my-posh

1
winget install JanDeDobbeleer.OhMyPosh -s winget

安装过程如下图所示. 注意这条命令是去 github 上下载.

运行 notepad $PROFILE 打开配置文件写入下面内容选择 sorin 主题后保存.

1
oh-my-posh init pwsh --config "$env:POSH_THEMES_PATH/sorin.omp.json" | Invoke-Expression

主题样式有很多, 可以在 oh-my-posh 主题样式 选择你喜欢的样式.

2、安装字体

安装完成之后可能会显示乱码, 没法显示图片, 需要我们安装字体 Meslo LGM NF. 下载之后在win11 中搜索字体设置, 打开全项拖进去即可.

之后在打开 设置->默认值->外观->设置字体 如下图所示.

完成之后重新打开 terminal 就能显示了.

3、更新配色

terminal 的原始配色有点丑, 于是在网上找了一个配色 Subliminal . 打开 json 里面会有一些默认的配色, 直接加在里面就可以了.

配色代码如下, 复制粘贴即可

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
{
"background": "#282C35",
"black": "#7F7F7F",
"blue": "#6699CC",
"brightBlack": "#7F7F7F",
"brightBlue": "#6699CC",
"brightCyan": "#5FB3B3",
"brightGreen": "#A9CFA4",
"brightPurple": "#F1A5AB",
"brightRed": "#E15A60",
"brightWhite": "#D4D4D4",
"brightYellow": "#FFE2A9",
"cursorColor": "#C7C7C7",
"cyan": "#5FB3B3",
"foreground": "#D4D4D4",
"green": "#A9CFA4",
"name": "Subliminal",
"purple": "#F1A5AB",
"red": "#E15A60",
"selectionBackground": "#FFF558",
"white": "#FFFFFF",
"yellow": "#FFE2A9"
},

二、shell 美化

1. oh-my-zsh

oh-my-posh 是 windows 用的, ubuntu 下则使用 oh-my-zsh 配置主题, zhs 是一个 shell 工具, 和 bash 具有相同功能. 安装很简单运行 sudo apt install zsh 之后运行 zsh --version 查看版本号.

运行chsh -s $(which zsh)切换 bash 到 zsh , 运行之后重新打开一个终端后如下所示, 输入 2, zsh 已经切换完成并为我们创建 .zshrc 文件.

需要注意的是 zsh oh-my-zsh 并不是同一个东西. 接下来在 zsh 的基础上安装 oh-my-zsh.

1
sh -c "$(curl -fsSL https://gitee.com/mirrors/oh-my-zsh/raw/master/tools/install.sh)"

2. 安装 powerlevel10k

zsh 默认支持的主题, 可以在这里挑选默认的主题. 我使用的是 powerlevel10k 不是默认的主题需要下载.

1
git clone --depth=1 https://gitee.com/romkatv/powerlevel10k.git ${ZSH_CUSTOM:-$HOME/.oh-my-zsh/custom}/themes/powerlevel10k

安装完成之后 vim ~/.zshrc 配置 ZSH_THEME="powerlevel10k/powerlevel10k"

source 之后进入配置界面

这里随便配, 配完之后会在 ~ 目录生成 ~/.p10k.zsh 配置文件接下来更进一步配置我们的主题, 我使用 Powerlevel10k config with Tony Lambiris’s style 这个配置.首先运行下面命令下载配置文件

1
curl -fsSL https://gist.githubusercontent.com/romkatv/3e1c685ec83170ecb33267d5c7d3fe3f/raw/p10k-tony-lambiris.zsh -o ~/.p10k-tony-lambiris.zsh

然后运行下面命令将配置文件写入 ~/.zshrc

1
echo 'source ~/powerlevel10k/.powerlevel10k.zsh-theme' >>! ~/.zshrc

最后运行 . ~/.zshrc 更新配置文件

到此就算是使用 windows terminal 的配置就算完成了.

3、配置一些常用功能

    在 Zsh 中,按下两次Tab键会触发自动补全功能。第一次按下Tab键时,它会尝试根据您输入的内容匹配可能的命令、文件名或其他内容。如果有多个匹配项,再次按下Tab键将显示所有可能的匹配项列表。这种模式被称为"双击Tab键补全",它是Z sh 中非常常见的一种操作,用于快速查找和选择文件名、命令、参数等.

    对于新手来说这个功能算是比较友好的, 但是博主习惯了 bash 的那种方式, 所以去掉了这个功能. 去掉的方式很简单在 ~/.zshrc 中添加 setopt noautomenu 就可以了. 以下是博主根据自己的习惯配的一些常用命令.各位可以按需选择

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
# 设置一些常用命令命令
alias ll='ls -alF'
alias la='ls -A'
alias l='ls -CF'
alias gs='git status'
alias gl='git log --pretty=oneline'
#alias gf='git --no-pager diff'
alias gf='git diff'
alias gc='git checkout'
alias gr='grep -r --include="*.c" '
alias hs='history | grep '
alias cls='clear'
alias cstag='find ./ -name "*.c" -o -name "*.h" > cscope.files && cscope -Rbq -i cscope.files && ctags -L cscope.files'

# 配置历史记录
export HISTSIZE=1000 # 定义zsh 保存的历史命令数量上限为1000
export SAVEHIST=1000 # 定义退出 zsh 时保存的历史命令数量为1000
export HISTCONTROL=ignoredups # 使历史记录忽略连续的重复命令
export HISTFILE=~/.zsh_history # 定义历史命令的保存文件
setopt HIST_IGNORE_ALL_DUPS # 使历史记录忽略所有重复条目

# 安卓编译配置, 设置 cache
export USE_CCACHE=1
export CCACHE_EXEC=/usr/bin/ccache
export CCACHE_DIR=~/work/.ccache
ccache -M 250G -F 0

# 即时提示(instant prompt)为静默模式
typeset -g POWERLEVEL9K_INSTANT_PROMPT=quiet

# 配置 p10k 主题
source ~/.p10k-tony-lambiris.zs

# 去掉 双击Tab键补全 功能
setopt noautomenu