欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  网络运营

wsl+ zsh + oh-my-zsh配置

程序员文章站 2022-06-23 19:27:12
wsl+ zsh + oh-my-zsh配置经常在windows平台办公, 配置一些开发环境时在Linux中会比较简单, 参照了在Linux服务器中的配置, 同步在WSL中.测试平台:WIN10 X64专业版, V1903 (只支持WSl_V1, WSL_V2需要>=WIN2004才支持)WSL类型: Ubuntu18.041. 安装WSL1.1 功能组件安装这里以图形化界面安装功能组件为例文件管理器中粘贴: 控制面板\程序\程序和功能 => 启用或关闭Windows功能,...

wsl+ zsh + oh-my-zsh配置

经常在windows平台办公, 配置一些开发环境时在Linux中会比较简单, 参照了在Linux服务器中的配置, 同步在WSL中.

测试平台:

  • WIN10 X64专业版, V1903 (只支持WSl_V1, WSL_V2需要>=WIN2004才支持)
  • WSL类型: Ubuntu18.04
1. 安装WSL

1.1 功能组件安装

这里以图形化界面安装功能组件为例

文件管理器中粘贴: 控制面板\程序\程序和功能 => 启用或关闭Windows功能, 弹出如下窗口:

wsl+ zsh + oh-my-zsh配置

勾选图中标记的2项, 点击确定后开始安装过程; 安装完毕后提示重启后, 重启系统即可.

1.2 安装WSL系统(程序)

这里以微软的AppStore方式安装为例

在windows store 搜索 Ubuntu, 选择Ubuntu18.04, 安装包体积相对Ubuntu16.04和Ubuntu20.04更小, 且比Ubuntu20.04运行更流畅

安装完毕, 会自动打开子系统, 第一次登录会提示输入用户名和密码, 按提示完成即可

日常使用系统,可以在启动菜单中可以找到快捷方式; 也可以配置右键快捷键, 推荐!

wsl+ zsh + oh-my-zsh配置

注: 子系统安装好之后, 会在本地用户的环境变量PATH中看到程序的包含路径:

%USERPROFILE%\AppData\Local\Microsoft\WindowsApps, 可以在文件管理器地址栏中直接粘贴路径打开, 查看文件夹内容

2.配置oh-my-zsh

安装并配置zsh为默认shell

sudo apt-get update
sudo apt-get install zsh -y
sudo usermod -s /bin/zsh $(whoami)  # or sudo usermod -s $(which zsh) $(whoami)

oh-my-zsh自动化安装脚本下载及安装

# 方法一
wget https://github.com/robbyrussell/oh-my-zsh/raw/master/tools/install.sh -O - | sh

# 方法二: 手动复制/粘贴此脚本到本地, 执行安装
https://github.com/robbyrussell/oh-my-zsh/blob/master/tools/install.sh
bash ./install.sh

搭配常用插件, 可以更高效, 如

# 智能提示
git clone https://github.com/zsh-users/zsh-autosuggestions ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-autosuggestions

# 语法高亮插件
git clone https://github.com/zsh-users/zsh-syntax-highlighting.git ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-syntax-highlighting

# 更多插件 ...

.zshrc配置文件修改并刷新配置

vim ~/.zshrc
"""
# 修改默认主题
ZSH_THEME="agnoster"

# 启动错误命令自动更正
ENABLE_CORRECTION="true"

# 开启大小写敏感
CASE_SENSITIVE="true"

# 禁用自动版本检查更新
DISABLE_AUTO_UPDATE="true"

# 启用已安装的插件, 增加要启用的插件
plugins=(git zsh-autosuggestions zsh-syntax-highlighting)

# 最后一栏,增加如下两行, 不显示用户@主机信息
# redefine prompt_context for hiding user@hostname
prompt_context () { }


# 修改完毕后, 保存并退出
"""

source ~/.zshrc 

必要配置

修改国内源

  • ubuntu软件源: https://mirrors.tuna.tsinghua.edu.cn/help/ubuntu/
  • 其它, …
3.终端美化

windows终端默认字体和配色很难看, 这里以微软的开源调色工具ColorTool为例, 为WSL终端美化.

ColorTool下载: https://github.com/microsoft/terminal/releases/tag/1904.29002

下载后解压, 打开cmd/powershell切换工作目录到到解压后路径, 提供了5种主题, 选择一款喜欢的

./colortool.exe -b OneHalfLight

# all
./colortool.exe -b deuteranopia
./colortool.exe -b OneHalfDark
./colortool.exe -b OneHalfLight
./colortool.exe -b solarized_dark
./colortool.exe -b solarized_light

以PowerShell为例, 执行命令后输出如下, 会影响当前PowerShell及WSL终端显示

wsl+ zsh + oh-my-zsh配置

有兴趣的话, 可以自己对主题配色微调, 如基于OneHalfLight主题, 修改屏幕背景为纯黑色+轻度透明效果+光标颜色/形状, WSL效果如下

wsl+ zsh + oh-my-zsh配置

修改时建议在窗口的左上角的默认值和属性两个对话框同步修改属性.

4.常见问题

4.1 WSL忘记密码: 修改密码 (PowerShell, 管理员权限)

# 设置默认登录用户为root, 重新登录系统修改用户密码
ubuntu1804.exe config --default-user root
passwd username

# 修改完毕, 在修改系统默认登录用户
ubuntu1804.exe config --default-user username

4.2 卸载系统: (PowerShell, 管理员权限)

lxrun /uninstall /full

4.3 oh-my-zsh主题乱码:

oh-my-zsh主题用到了特殊的字符, 有些字体并没有包含这类字符; 建议安装powerline/fonts,其中DejaVuSansMono系列等宽字体,在CMD中可以完美兼容, 因此只需要安装这一系列字体即可.

字体下载安装完毕后, 在WSL终端窗口中, 属性:字体面板, 选择DejaVu Sans Mono for Powerline,确定

wsl+ zsh + oh-my-zsh配置

4.4 WSL终端, 启动VIM查看编辑文件时, 字体莫名变化为新宋体

解决方法: 修改注册表(work)

WIN + R, 输入regedit, 回车后, 定位到: 计算机\HKEY_CURRENT_USER\Console

Ubuntu18.04 发现存在如下两项

  • "计算机\HKEY_CURRENT_USER\Console%SystemRoot%_system32_wsl.exe"
    • 新建DWORD项, 名字CodePage,取值为十进制下65001 或者十六进制下0xFDE9
  • "计算机\HKEY_CURRENT_USER\Console\C:_Program Files_WindowsApps_CanonicalGroupLimited.UbuntuonWindows_2004.2020.424.0_x64__79rhkp1fndgsc_ubuntu.exe"
    • 观察到此处对应的PageCode项已经存在, 直接编辑值同上,设置为十进制65001

修改完毕后, 重启WSL.

wsl+ zsh + oh-my-zsh配置

注意: 不同版本WIN10系统或不同安装方式(AppStore/PowerShell)以及不同版本Linux, 此处看到的内容可能不一致.

示例:

  1. 只存在: “计算机\HKEY_CURRENT_USER\Console%SystemRoot%_system32_wsl.exe”
  2. 存在: “计算机\HKEY_CURRENT_USER\Console%SystemRoot%_System32_bash.exe” , 而不是1中所示

示例1图片, 相同系统软件环境和配置流程安装Ubuntu16.04后的注册表
wsl+ zsh + oh-my-zsh配置

5.参考博文

本文地址:https://blog.csdn.net/u010472607/article/details/107347561