warp在window使用
- warp在window中使用,建议使用WSL环境
- linux风格
- 支持zsh + oh-my-zsh
- 体验接近mac
Warp 本身是终端界面,需要连接 Shell。
常见 Shell:
| Shell | 推荐 |
|---|---|
| PowerShell | 默认 |
| Git Bash | 推荐 |
| WSL | 强烈推荐 |
| CMD | 不推荐 |
windows中使用
- 切换模式: ctrl + i
- 命令和agent模式
- /mnt目录问题
- WSL 中: 为了让 Linux 系统能够看到 Windows 的文件,WSL 自动将你的 Windows 磁盘“挂载”到了 Linux 的
/mnt目录下- C 盘 变成了
/mnt/c - D 盘 变成了
/mnt/d
- C 盘 变成了
- Linux 标准中,
/mnt是一个通用的挂载点临时目录。
- WSL 中: 为了让 Linux 系统能够看到 Windows 的文件,WSL 自动将你的 Windows 磁盘“挂载”到了 Linux 的
windows中配置
windows配置zsh主题
在 Windows 上使用 zsh 需要通过 WSL
- 1、运行
wsl --install。进入 Linux 分发版 (Ubuntu)- 创建账号密码 qwk/123456
wsl --install
- 2、更新软件包列表
sudo apt update
- 3、安装 zsh
sudo apt install zsh -y
- 4、设置为默认 Shell: 运行以下命令并重启终端
chsh -s $(which zsh)
- 5、安装 Oh My Zsh
- Oh My Zsh 是管理 Zsh 配置、主题和插件的最流行框架
sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"
如果之前安装有问题,需要删除 Oh My Zsh 之后重新安装
rm -rf ~/.oh-my-zshsh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"
- 6、安装zsh 主题
- Oh My Zsh 默认安装了许多主题,
- 也可以使用安装 Powerlevel10k (最强主题)
git clone --depth=1 https://github.com/romkatv/powerlevel10k.git ${ZSH_CUSTOM:-$HOME/.oh-my-zsh/custom}/themes/powerlevel10k
- 7、配置zsh主题
vim ~/.zshrc
source ~/.zshrc
- 8、配置 zsh 别名
- 在
~/.zshrc配置中引入别名配置文件
- 在
# 别名文件配置
[ -f ~/.zsh_aliases ] && source ~/.zsh_aliases
默认终端进入wsl
- 查看wsl的分发
wsl -l -v
- 切换wsl的分发系统
wsl -d Ubuntu
- 设置正确的系统为默认: 为了以后输入 wsl 就直接进入 Ubuntu,运行
wsl --set-default Ubuntu
window的zsh配置
- zsh配置 在
~/.zshrc
.zshrc
export ZSH="$HOME/.oh-my-zsh"
# 主题
ZSH_THEME="robbyrussell"
plugins=(git)
source $ZSH/oh-my-zsh.sh
export ZSH="$HOME/.oh-my-zsh"
# 别名文件配置
[ -f ~/.zsh_aliases ] && source ~/.zsh_aliases
windows中zsh的alias别名配置
-
单独创建zsh的别名文件
touch ~/.zsh_aliases
zsh_aliases
# ---- git配置 -----------
# git 基础
clone() {
(( $# )) && git clone "$@" || echo "usage: clone <repo> [dir]"
}
clone:b() {
(( $# )) && git clone -b "$@" || echo "usage: clone:b <branch> <repo>"
}
pull() {
(( $# )) && git pull origin "$@" || git pull
}
push() {
(( $# )) && git push origin "$@" || git push
}
push:f() {
(( $# )) && git push -f origin "$@" || git push -f
}
push:u() {
(( $# )) && git push -u origin "$@" || git push -u
}
head() {
git push origin head
}
head:u() {
git push -u origin head
}
merge() {
(( $# )) && git merge "$@" || git merge
}
merge:abort() {
git merge --abort
}
# 分支
branch() {
(( $# )) && git branch "$@" || git branch
}
branch:m() {
(( $# >= 2 )) && git branch -m "$@" || echo "usage: branch:m <old> <new>"
}
branch:d() {
(( $# )) && git branch -d "$@" || echo "usage: branch:d <branch>"
}
del() {
branch:d "$@"
}
checkout() {
(( $# )) && git checkout "$@" || git checkout
}
checkout:b() {
(( $# )) && git checkout -b "$@" || echo "usage: checkout:b <branch>"
}
create() {
checkout:b "$@"
}
switch() {
checkout "$@"
}
edit() {
branch:m "$@"
}
# 提交
add() {
(( $# )) && git add "$@" || git add .
}
commit() {
(( $# )) && git commit -m "$*" || git commit
}
commit:amend() {
git commit --amend
}
feat() {
(( $# )) && git commit -m "feat: $*" || echo "usage: feat <message>"
}
fix() {
(( $# )) && git commit -m "fix: $*" || echo "usage: fix <message>"
}
docs() {
(( $# )) && git commit -m "docs: $*" || echo "usage: docs <message>"
}
style() {
(( $# )) && git commit -m "style: $*" || echo "usage: style <message>"
}
# 查看 / 日志
log() {
(( $# )) && git log "$@" || git log
}
log:grep() {
(( $# )) && git log --grep="$*" || echo "usage: log:grep <keyword>"
}
status() {
(( $# )) && git status "$@" || git status
}
# stash
stash() {
(( $# )) && git stash "$@" || git stash
}
stash:u() {
git stash -u
}
stash:pop() {
git stash pop
}
stash:apply() {
git stash apply
}
stash:list() {
git stash list
}
# reset
reset() {
git reset HEAD^
}
reset:mixed() {
git reset HEAD^
}
reset:1() {
git reset HEAD~1
}
reset:2() {
git reset HEAD~2
}
reset:n() {
(( $# )) && git reset "$@" || echo "usage: reset:n <ref>"
}
reset:hard() {
(( $# )) && git reset --hard "$@" || echo "usage: reset:hard <ref>"
}
# pick
pick() {
(( $# )) && git cherry-pick "$@" || echo "usage: pick <commit...>"
}
# tag / fetch
tag() {
(( $# )) && git tag "$@" || git tag
}
tag:d() {
(( $# )) && git tag -d "$@" || echo "usage: tag:d <tag>"
}
fetch() {
git fetch
}
# 一键提交
submit() {
(( $# )) && git add . && git commit -m "$*" && git push origin head \
|| echo "usage: submit <message>"
}
#--------git配置----------—#
#--------目录配置----------#
alias c="cd /mnt/c"
alias d="cd /mnt/d"
alias ads-git='cd /mnt/d/work/git-work/git-ads-front.flextv.cc'
alias h5-git='cd /mnt/d/work/git-work/git-flextv_msite_overseas'
alias ai-translate-git='cd /mnt/d/work/git-work/git-flextv_ai_translate_admin_web'
alias website-git='cd /mnt/d/work/git-work/git-flextv_h5_overseas_new'
alias ugc-website='cd /mnt/d/work/git-work/git-flextv_ugc_website'
#--------目录配置----------#
#--------系统配置----------#
# 快速编辑 zshrc
alias vim-zsh='vim ~/.zshrc'
alias code-zsh='code ~/.zshrc'
# 快速编辑别名文件
alias vim-alias='vim ~/.zsh_aliases'
alias code-alias='code ~/.zsh_aliases'
#--------系统配置----------#
在windows安装使用wsl注意问题
- 需要在WSL 里“再安装一套 Node.js。而是 Windows 和 WSL 是两个几乎隔离的运行环境
- WSL 中: 为了让 Linux 系统能够看到 Windows 的文件,WSL 自动将你的 Windows 磁盘“挂载”到了 Linux 的
/mnt目录下
wsl安装nodejs
# 安装 nvm(WSL)curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash# LTS = Long Term Support(长期支持版)nvm install --ltsnvm use --ltsnpm install -g pnpmnpm install -g yarn