跳到主要内容

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
    • Linux 标准中,/mnt 是一个通用的挂载点临时目录。

windows中配置​

windows配置zsh主题​

在 Windows 上使用 zsh 需要通过 WSL

  • 1、运行 wsl --install。进入 Linux 分发版 (Ubuntu)
    • 创建账号密码 qwk/123456
bash
wsl --install
  • 2、更新软件包列表
bash
sudo apt update
  • 3、安装 zsh
bash
sudo apt install zsh -y
  • 4、设置为默认 Shell: 运行以下命令并重启终端
bash
chsh -s $(which zsh)
  • 5、安装 Oh My Zsh
    • Oh My Zsh 是管理 Zsh 配置、主题和插件的最流行框架
bash
sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"

如果之前安装有问题,需要删除 Oh My Zsh 之后重新安装

bash
rm -rf ~/.oh-my-zsh
sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"
  • 6、安装zsh 主题
    • Oh My Zsh 默认安装了许多主题,
    • 也可以使用安装 Powerlevel10k (最强主题)
bash
git clone --depth=1 https://github.com/romkatv/powerlevel10k.git ${ZSH_CUSTOM:-$HOME/.oh-my-zsh/custom}/themes/powerlevel10k
  • 7、配置zsh主题
bash
vim ~/.zshrc
source ~/.zshrc
  • 8、配置 zsh 别名
    • 在 ~/.zshrc配置中引入别名配置文件
bash
# 别名文件配置
[ -f ~/.zsh_aliases ] && source ~/.zsh_aliases

默认终端进入wsl​

  • 查看wsl的分发
bash
wsl -l -v
  • 切换wsl的分发系统
bash
wsl -d Ubuntu
  • 设置正确的系统为默认: 为了以后输入 wsl 就直接进入 Ubuntu,运行
bash
wsl --set-default Ubuntu

window的zsh配置​

  • zsh配置 在~/.zshrc

.zshrc

bash
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的别名文件

    bash
    touch ~/.zsh_aliases

zsh_aliases​

bash
# ---- 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​

bash
# 安装 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