cli tools for warp
📌 大纲
📝 主题描述
关于 warp 的使用教程
🎯 目标
- 了解 warp 下需要安装的工具包
- 配置文件的编写
- 可用的 notebook 和 workflow
基础安装和配置
我们这里选择使用 zsh
命令行界面。
我们最常用的工具包有哪些?
常用工具包的表格:
插件名 | 功能描述 | Warp取代 | 管理方式 | 额外配置 | 使用频率 |
---|---|---|---|---|---|
bat | 替代 cat,支持语法高亮显示 | No | brew | themes | 中 |
lsd | 替代 ls,支持色彩和图标显示 | No | brew | 无 | 高 |
fd | 替代 find,快速且用户友好 | No | brew | 无 | 高 |
zoxide | 替代 cd,快速目录跳转 | No | brew | 无 | 中 |
ripgrep | 替代 grep,搜索工具 | No | brew | 无 | 中 |
thefuck | 自动纠正命令行拼写错误 | No | brew | 无 | 中 |
starship | 极简主题,集成多个功能 | No | brew | 无 | 中 |
zsh-notify | 命令完成后发送通知 | No | zinit | 无 | 低 |
btop、htop | 资源占用情况 | No | brew | 有 | 中 |
tmux | 终端多窗口管理 | Yes | brew | 无 | 高 |
fzf | 命令行模糊搜索工具 | Yes | brew | 无 | 高 |
fzf-tab | 增强 zsh 的标签补全功能 | Yes | zinit | 无 | 高 |
zsh-autosuggestions | 基于历史命令的自动补全建议 | Yes | zinit, brew | 无 | 高 |
zsh-completions | 增强默认补全功能 | Yes | zinit, brew | 无 | 高 |
fast-syntax-highlighting | 显示命令的语法高亮,实时反馈 | Yes | zinit, brew | 无 | 高 |
zsh-syntax-highlighting | 显示命令的语法高亮 | Yes | zinit, brew | 无 | 高 |
zsh-history- substring-search |
通过输入命令的一部分来 搜索命令历史 |
Yes | zinit, brew | 无 | 中 |
extract | 解压缩文件 | Yes | zinit | 无 | 低 |
工具包的选择和安装:
macos 下使用 warp
,需要安装的包:
brew install fzf bat lsd fd zoxide thefuck btop starship fastfetch
macos 下使用 alacritty
,除了上面的工具包,额外可以安装的包:
# no warp
brew install zsh-autosuggestions zsh-completions zsh-syntax-highlighting zsh-history-substring-search tmux
使用 warp
的配置文件:
- 和
.zshrc
# export TERM="xterm-256color" # getting proper colors
# if [ -z "$TMUX" ]; then
# export TERM="xterm-256color"
# else
# export TERM="tmux-256color"
# fi
if [[ "$TERM" == "tmux-256color" ]]; then
export TERM=screen-256color
fi
export HISTORY_IGNORE="(ls|cd|pwd|exit|sudo reboot|history|cd -|cd ..)"
### PATH
if [ -d "$HOME/.bin" ] ;
then PATH="$HOME/.bin:$PATH"
fi
if [ -d "$HOME/.local/bin" ] ;
then PATH="$HOME/.local/bin:$PATH"
fi
if [ -d "$HOME/Applications" ] ;
then PATH="$HOME/Applications:$PATH"
fi
### golang ###
export GOPATH="$HOME/go"
export PATH="$GOPATH/bin:$PATH"
export PATH="/usr/local/istio/bin:$PATH"
export PATH="$HOME/.local/bin:$PATH"
export PATH="/usr/local/opt/node@14/bin:$PATH"
export PATH="$HOME/emacs-configs/doom-emacs/bin:$PATH"
#export KUBECONFIG="${KUBECONFIG}:$HOME/.kube/config"
#export LDFLAGS="-L/usr/local/opt/node@14/lib"
#export CPPFLAGS="-I/usr/local/opt/node@14/include"
### 设置和初始化 Node Version Manager (NVM) 的环境 ###
export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm
[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion" # This loads nvm bash_completion
export PATH="/opt/homebrew/opt/node@20/bin:$PATH"
### bat theme ###
export BAT_THEME=tokyonight_night
.zshrc
[[ -f ~/.aliases.zsh ]] && source ~/.aliases.zsh
# thefuck alias
eval $(thefuck --alias fk)
# neofetch
eval "fastfetch"
# Load Starship
eval "$(starship init zsh)"
.aliases
alias ls="lsd --group-dirs=first"
alias ll="lsd --group-dirs=first -l"
使用 Alacritty
终端模拟器的配置文件
[[ -f ~/.aliases.zsh ]] && source ~/.aliases.zsh
### VMWare easy commands via functions ###
vmup() {
[ $1 ] && /Applications/VMware\ Fusion.app/Contents/Library/vmrun -T fusion start ~/Virtual\ Machines.localized/$1.vmwarevm/$1.vmx nogui || echo "Please provide VM name"
}
vmdown() {
[ $1 ] && /Applications/VMware\ Fusion.app/Contents/Library/vmrun -T fusion stop ~/Virtual\ Machines.localized/$1.vmwarevm/$1.vmx soft=True || echo "Please provide VM name"
}
vmlist() {
vmls=`ls ~/Virtual\ Machines.localized/ | sed 's/\.vmwarevm$//' | tr "/\n" " "`
echo "All available VMs: ${vmls}"
vmrn=`/Applications/VMware\ Fusion.app/Contents/Library/vmrun -T fusion list | grep vm | cut -d'/' -f6 | sed 's/\.vmx$//' | tr "/\n" " "`
echo "All running VMs: ${vmrn}"
}
### not warp ###
# history setup
HISTFILE=$HOME/.zhistory
SAVEHIST=1000
HISTSIZE=999
setopt share_history
setopt hist_expire_dups_first
setopt hist_ignore_dups
setopt hist_verify
# completion using arrow keys (based on history)
bindkey '^[[A' history-search-backward
bindkey '^[[B' history-search-forward
source $(brew --prefix)/share/zsh-autosuggestions/zsh-autosuggestions.zsh
source $(brew --prefix)/share/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh
### end not warp ###
# thefuck alias
eval $(thefuck --alias fk)
# neofetch
eval "fastfetch"
# Load Starship
eval "$(starship init zsh)"
详细说明
fzf:模糊查找
提供交互式搜索界面,用户可以实时过滤和选择。在处理任意列表数据时提供了极高的灵活性和用户自定义能力。
可以在查找的内容中,实时的移动和选择目标。
bat 替代 cat
bat 的主题配置:
mkdir -p "$(bat --config-dir)/themes"
cd "$(bat --config-dir)/themes"
# Download a theme in '.tmTheme' format, for example:
git clone https://github.com/greggb/sublime-snazzy
# or tokyo night
curl -O https://raw.githubusercontent.com/folke/tokyonight.nvim/main/extras/sublime/tokyonight_night.tmTheme
# Update the binary cache
bat cache --build
And then add the following to your ~/.zshrc
:
# ----- Bat (better cat) -----
export BAT_THEME=tokyonight_night
lsd 替代 ls
或者 可以使用 eza
fd 代替 find
是一个简单且快速的文件查找工具。
zoxide 代替 cd
用 z
来直接跳转目录,不需要按部就班的把目录的完整地址写下来。
主题工具:颜值即正义
starship
: 适用于zsh
的极简主题,集成了许多有用的功能。
fastfetch
: 每次启动终端时、将系统资料非常美观的展现出来。
其它可选工具
thefuck
: 一个聪明的工具,可以自动纠正你上一条命令中的拼写错误。
alias-tips
: 提醒用户使用已定义的别名,以简化命令输入。
tmux
: 虽然不是zsh
特有的,但tmux
与zsh
一起使用可以更好地管理多个命令行会话。
zinit 插件管理
使用 Alacritty
作为终端模拟器的比较好的管理插件的工具。
可管理插件:
fzf-tab
:模糊查找的 tab 功能扩展。
zsh-autosuggestions
: 提供基于你历史命令的自动补全建议。
zsh-completions
: 提供额外的补全定义,增强默认补全功能。
fast-syntax-highlighting
、zsh-syntax-highlighting
: 显示命令的语法高亮,可以实时看到哪些部分是正确的。
zsh-notify
: 一个插件,可以在一个长时间运行的命令完成后通知你。
history
、zsh-history-substring-search
: 允许用户通过输入命令的一部分来搜索命令历史。
extract
:解压缩
yadm 配置文件管理
warp 的特点
该终端模拟器更像是一款 vscode 的 IDE 集成开发环境。
颜值
可以通过图片来自动生成主题。
技巧
- 直接在命令行中跳转到文件夹。
- 多行光标,多行选择,多行同时编辑,。
cmd
+ 鼠标点击。 - 用通俗语言询问 ai 相关需求的命令。
- 自集成的多窗口管理。