windows 终端环境搭建 (win11+msys)
这篇主要开发环境在windows上,所以下面给了详细的在windows上配置的内容
如果要转战wsl环境请阅读 windows+msys64+wsl (2)
终端
msys 这是一款在windows上模拟linux命令的工具
下载msys 这边是2023-3-18版本的最新版本去官网下载
-
安装时选择安装位置默认c根目录我这边选择d以后在重装系统的时候就不用重新配置了
-
安装好新建terminal的profile,在commadline下面粘贴这段话,执行shell,我是吧msys放在了d
$ D:/msys64/msys2_shell.cmd -defterm -here -no-start -msys对应的startDirectory
D:/msys64/home/%USERNAME% -
安装vim 这边使用的是pacman, 鉴于archLinux的包管理
$ pacman -S vim -
配置包的镜像
我这边用的是msys 其他的还可以用
ucrt64,mingw64,mingw, 反正都配一下吧 有的时候包在别的环境下.镜像源$ vim /etc/pacman.d/mirrorlist.msys # 更新 $ pacman -Syyu -
配置shell 这边用zsh
$ pacman -S zsh -
给终端装一个主题 这边用的是zim管理
# 在下载前先配置一下hosts 在hosts文件中追加 199.232.28.133 raw.githubusercontent.com 185.199.108.133 raw.githubusercontent.com下载主题
$ curl -fsSL https://raw.githubusercontent.com/zimfw/install/master/install.zsh | zsh # 如果没有 curl 用pacman装一下配置主题
$ vim ~/.zimrc追加
zmodule romkatv/powerlevel10k zmodule prompt-pwd保存退出执行
$ zimfw install最后根据提示安装好主题
环境变量
- 对于终端类的我们可以直接配置到
.zshrc文件中和linux一样,下面是个范例
如果用wsl作为主要开发环境的话不用配置过多的宿主(windows) 环境变量
# global variable
export WORKSPACE=/d/workspace
export SDK=/d/sdk
export APP=/d/application
export PKG=/d/pkg
export MSYS_HOME=/d/msys64
# gloabl path
export PATH=$MSYS/mingw64/bin:$PATH
#windows home
export WHOME=/c/Users/dairs
# nodejs
export NODE_HOME=$SDK/nodejs
export NODE_VERSION="v18.14.1"
export PATH=$NODE_HOME/$NODE_VERSION:$PATH
# npm global repostory
export PATH=$PKG/npm:$PATH
# cmake
export PATH=$SDK/cmake/bin:$PATH
# git
export GIT_HOME=$SDK/git
export PATH=$GIT_HOME:$GIT_HOME/bin:$GIT_HOME/cmd:$PATH
# android
export ANDROID_HOME=$SDK/android
export ANDROID_VERSION="33.0.3"
export PATH=$ANDROID_HOME/emulator:$ANDROID_HOME/platform-tools:$PATH
export PATH=$ANDROID_HOME/build-tools/$ANDROID_VERSION:$ANDROID_HOME/cmdline-tools/latest/bin:$PATH
# android studio
export PATH=$APP/android-studio/bin:$PATH
# java
export JDK_VERSION="jdk-11.0.18+10"
export JAVA_HOME=$SDK/java/$JDK_VERSION
export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH
export CLASSPATH=$CLASSPATH:$JAVA_HOME/lib:$JAVA_HOME/jre/lib
# flutter
export FLUTTER_STORAGE_BASE_URL="https://storage.flutter-io.cn"
export PUB_HOSTED_URL="https://pub.flutter-io.cn"
export PATH=$SDK/flutter/bin:$PATH
# golang
export GOPATH=$WORKSPACE/golang
export GO_VERSION="go1.20.2"
export GOROOT=$SDK/go/$GO_VERSION
export GOPROXY="https://proxy.golang.com.cn,direct"
export PATH=$SDK/go/$GO_VERSION/bin:$GOPATH/bin:$PATH
# application
# vscode
export PATH=$APP/VSCode/bin:$PATH
# alias
alias ll='ls -al'
# jump to
alias cwh='cd $WHOME'
alias cwork='cd $WORKSPACE'
- 对于windows而言如果其他软件需要用到环境变量他是不会读取这个配置的,所以得在windows中配置一些,不多按需配置即可
安装一些有用的包
有些包用这个装效果还是不错的 git 和 nodejs我并没有用它装我统一放在了sdk下面
- make cmake
$ pacman -S make cmake
- c++ gcc 环境
$ pacman -S --needed base-devel mingw-w64-x86_64-toolchain
注意: toolchain这个安装在了mingw-w64,请把相应的目录配置到环境变量中
export PATH=$MSYS/mingw64/bin:$PATH,不然装好了会提示找不到, 最后执行gcc --version查看是否装好
- nvim
# 不知道安装包是否有用下面命令查看
pacman -Ss neovim
# 然后选择合适的环境下的neovim安装
注意: windows下的neovim的配置文件是在
$HOME/AppData/nvim下面的. neovim的知识请移步bilibili,相关推荐配置 请注意网络有些插件下载不下来请走科学道路
字体 nerdfont
一些花里胡哨的图标就是走这种字体的 我这边用的是
FiraCode NF,如果是windows系统,请选择兼用型字体github 这边fork了一下别人的仓库做个收藏
关于一些细节处理
- nodejs
我这边的npm全局仓库放到了别的位置
$ npm config -g set prefix=$(cygpath -m /d/pkg/npm) # 下面可以直接写shell会自动转换linux路径为windows路径
$ npm config -g set prefix=/d/pkg/npm
# 两条命令效果一样
cygpath是一个windows路径和linux路径转换的一个命令
- vscode 终端配置
config terminal settings
{
...
"terminal.integrated.defaultProfile.windows": "msys",
"terminal.integrated.profiles.windows": {
"PowerShell": {
"source": "PowerShell",
"icon": "terminal-powershell"
},
"Command Prompt": {
"path": [
"${env:windir}\\Sysnative\\cmd.exe",
"${env:windir}\\System32\\cmd.exe"
],
"args": [],
"icon": "terminal-cmd"
},
"Git-Bash": {
"path": ["${env:SDK}\\git\\bin\\bash.exe"],
"args": ["-i", "-l"]
},
// 配置在这 ... 也可以向上面一样使用环境变量配置
// "path": ["${env:msys}\\msys2_shell.cmd"],
// 注意这个msys环境变量要事先在windows环境变量中加入
"msys": {
"path": ["D:\\msys64\\msys2_shell.cmd"],
"args": ["-defterm", "-here", "-no-start", "-msys"]
}
},
}
问题
- yarn create * 报文件名、目录名或卷标语法不正确
可能是因为yarn的命令目录bin与其全局安装位置不在一个文件夹下导致
解决方案
-
- 查看yarn的命令目录
$ yarn global bin -
- 查看yarn的全局安装目录
$ yarn global dir -
- 发现与bin的位置并不一致,于是去修改 yarn的全局安装位置和缓存位置
$ yarn config set global-folder "D:\pkg\yarn" $ yarn config set cache-folder "D:\pkg\yarn_cache"
注:此处设置并非要与bin同一目录下,同一根目录即可。此处未放在node下的文件夹,而是将yarn 单独放在了另外一个文件夹中
- flutter 找不到git
原因1: git环境没配置 原因2: flutter sdk文件夹被重装系统后git由于安全问题不予理会
解决方案
-
- 针对第一个问题可以重新安装git并加入环境变量,如果是执行的exe这需要配置终端环境路径 如果是便携式的git包则需要手动配置一下终端环境路径
-
- 针对第二个问题,最粗暴的方法就是删了重新下载flutter,第二种就是 git status一下根据提示把文件夹放入safe名单中去