zsh终端和oh-my-zsh配置
一、Ubuntu端
1. 安装zsh和tmux
$ sudo apt-get install zsh tmux
2. 安装Powerline Fonts字体
$ sudo apt-get install fonts-powerline
3. 安装Oh My Zsh
注:需要挂代理!
$ sh -c "$(wget https://raw.github.com/ohmyzsh/ohmyzsh/master/tools/install.sh -O -)"
或者
$ wget https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh
$ sh install.sh
升级:
$ omz update
4. 安装插件
- zsh-autosuggestions
 
$ git clone git://github.com/zsh-users/zsh-autosuggestions ~/.oh-my-zsh/plugins/zsh-autosuggestions
注:如字看不清,在插件目录下找到 autosuggestions.zsh 文件,找到并修改ZSH_AUTOSUGGEST_HIGHLIGHT_STYLE='fg=11'
- zsh-syntax-highlighting
 
$ git clone git://github.com/zsh-users/zsh-syntax-highlighting ~/.oh-my-zsh/plugins/zsh-syntax-highlighting
5. 配置文件
~/.zshrc文件
- 主题设为
"agnoster" - 开启插件
 
plugins=(
    tmux
    git
    z
    zsh-autosuggestions
    zsh-syntax-highlighting
)
- 保留原 
.bashrc文件的启动配置: 
在 ~/.zshrc 文件开头处,添加
    source ~/.bashrc
注:如 .bashrc 内容在启动报错,屏蔽掉相应不兼容指令。
- oh my tmux 快捷键用vim逻辑
 
在 ~/.zshrc 文件开头处,添加
    export EDITOR="vim"
6. 安装Oh my tmux
之前必须已安装awk、perl、sed;且 $ echo $TERM 必须为 xterm-256color 。
$ mkdir ~/.config/tmux
$ cd ~/.config/tmux
$ git clone https://github.com/gpakosz/.tmux.git .
$ ln -s ./.tmux.conf ./tmux.conf
$ cp ./.tmux.conf.local ./tmux.conf.local
tmux.conf为系统配置文件,用户一般不修改tmux.conf.local为用户配置文件,用户定制在这里
7. 设置Oh my tmux
修改 tmux.conf.local
tmux_conf_theme_*_separator_*底栏分隔符号- tmp插件安装
tmux-cpu、tmux-resurrect、tmux-continuum。 
二、Windows端
1. 安装Powerline Fonts字体
回到Ubuntu,下载:
$ cd /tmp
$ git clone https://github.com/powerline/fonts.git --depth=1
$ cd /tmp/fonts
拷贝文件夹到windows目录下;windows下,管理员运行Windows PowerShell;到fonts目录下,运行:
> Set-ExecutionPolicy Bypass
> .\install.ps1
> Set-ExecutionPolicy Default
2. Windows Terminal字体设置成:XXX for powerline
3. Windows Terminal配色设置
配色大全网站:https://github.com/mbadolato/iTerm2-Color-Schemes
网站内windowsterminal/目录下,拷贝配色文件内容,打开Windows Terminal的settings.json文件,粘贴在 (“schemes”)相应位置,注意添加分隔符逗号!
4. VSCode配置字体,用以支持powerline特殊字符。
配置文件中添加
"editor.fontFamily": "'Ubuntu Mono derivative Powerline'",
5. VSCode修改内置terminal配色:
VSCode Terminal配色网站:https://glitchbone.github.io/vscode-base16-term/
拷贝配色内容,打开VSCode的settings.json文件,粘贴在"workbench.colorCustomizations": {}内。
三、使用
1. git快捷键(zsh git插件)
| 简写 | 命令 | 
|---|---|
| g | git | 
| gst | git status | 
| gl | git pull | 
| gup | git pull --rebase | 
| gp | git push | 
| gd | git diff | 
| gdc | git diff --cached | 
| gdv | git diff -w "$@" | view  | 
| gc | git commit -v | 
| gc! | git commit -v --amend | 
| gca | git commit -v -a | 
| gca! | git commit -v -a --amend | 
| gcmsg | git commit -m | 
| gco | git checkout | 
| gcm | git checkout master | 
| gr | git remote | 
| grv | git remote -v | 
| grmv | git remote rename | 
| grrm | git remote remove | 
| gsetr | git remote set-url | 
| grup | git remote update | 
| grbi | git rebase -i | 
| grbc | git rebase --continue | 
| grba | git rebase --abort | 
| gb | git branch | 
| gba | git branch -a | 
| gcount | git shortlog -sn | 
| gcl | git config --list | 
| gcp | git cherry-pick | 
| glg | git log --stat --max-count=10 | 
| glgg | git log --graph --max-count=10 | 
| glgga | git log --graph --decorate --all | 
| glo | git log --oneline --decorate --color | 
| glog | git log --oneline --decorate --color --graph | 
| gss | git status -s | 
| ga | git add | 
| gm | git merge | 
| grh | git reset HEAD | 
| grhh | git reset HEAD --hard | 
| gclean | git reset --hard && git clean -dfx | 
| gwc | git whatchanged -p --abbrev-commit --pretty=medium | 
| gsts | git stash show --text | 
| gsta | git stash | 
| gstp | git stash pop | 
| gstd | git stash drop | 
| ggpull | git pull origin $(current_branch) | 
| ggpur | git pull --rebase origin $(current_branch) | 
| ggpush | git push origin $(current_branch) | 
| ggpnp | git pull origin $(current_branch) && git push origin $(current_branch) | 
| glp | _git_log_prettily | 
2. z跳转(zsh z插件)
zsh会自动记录cd访问过的目录,通过 $ z 目录名 就可以直接进行目录跳转,且支持模糊匹配和自动补全。
3. tmux快捷键(zsh tmux插件)
| 简写 | 命令 | 
|---|---|
| ts | tmux new-session -s | 
| tl | tmux list-sessions | 
| ta | tmux attach -t | 
| tad | tmux attach -d -t | 
| tksv | tmux kill-server | 
| tkss | tmux kill-session -t | 
四、Tmux使用
- 
Pane:程序运行在Pane。每个Pane隶属于在一个Window。
 - 
Window:多个pane组成一个window。每个Window至少有一个active pane。
 - 
Session:可attach和detach的单元。用户一时只能操作一个session;多用户可以同时attach同一个session。session可包含多个windows;至少包含一个current window。
<prefix> 指令前缀
Ctrl + a或者Ctrl + b<prefix> :命令行模式<prefix> ?帮助;<prefix> m开启/关闭鼠标$ tmux list-keys列出所有快捷键,及其对应的 Tmux 命令$ tmux list-commands列出所有 Tmux 命令及其参数 
1. Pane操作
| 快捷键 | 功能 | 
|---|---|
<p> " 或 - | 
划分上下两个pane。 | 
<p> % 或 S+- | 
划分左右两个pane。 | 
<p> x | 
关闭当前窗格。 | 
<p> <arrow> 或 hjkl | 
active切换pane。 | 
<p> C+<arrow key> 或 S+hjkl | 
按箭头方向调整窗格大小。 | 
<p> { | 
当前窗格左移。 | 
<p> } | 
当前窗格右移。 | 
<p> C+o | 
当前窗格上移。 | 
<p> A+o | 
当前窗格下移。 | 
<p> ! 或 + | 
将当前窗格拆分为一个独立窗口。 | 
<p> z | 
当前窗格全屏显示,再使用一次会变回原来大小。 | 
<p> q | 
显示窗格编号。 | 
2. Window操作
| 快捷键 | 功能 | 
|---|---|
<p> c | 
创建一个新Window,状态栏会显示多个窗口的信息。 | 
<p> & | 
关闭当前窗口 | 
<p> Tab | 
切换到上一次的Window。 | 
<p> <number> | 
切换到指定编号的Window,其中的是状态栏上的窗口编号。 | 
<p> C+h/C+l | 
按照状态栏顺序切换Windows。 | 
<p> w | 
从列表中选择Window。 | 
<p> , | 
重命名当前Window。 | 
3. Session操作
| 快捷键 | 功能 | 
|---|---|
<p> C+c | 
新建一个Session | 
<p> d | 
从当前session退出detach,但是session和里面的进程仍然在后台运行。 | 
<p> s | 
从列表中选择切换Session。 | 
<p> $ | 
重命名当前Session。 | 
$ tmux new -s <session-name>$ tmux detach$ tmux ls$ tmux attach -t <session-name>$ tmux kill-session -t <session-name>
最后修改于 2024-02-24