本仓库的最初目的是探索如何在 Windows 上打造出非常易用的终端环境。后来随着 Windows Terminal 和 WSL2 的发布,微软给出了一套更好的解决方案。不过目前的 WSL2 使用起来仍然像是个虚拟机,且资源消耗非常高,不适合 8GB 内存的电脑使用。
我认为现阶段 Windows Terminal(终端) + Git Bash(Shell)会是一个更好的选择,WSL2 辅助来用。
所以,我建议使用 Windows Terinal 作为终端,Git Bash 作为 Shell 搭配其使用。Git Bash 的精髓在于 alias 和自带常用 linux 命令,性能也非常高,而 Windows Terminal 目前作为终端来说可定制性和易用性更好,比如自带多标签和分屏功能,目前 Windows Terminal 的快捷键需要自行配置,我将我的配置放到了 profiles.json
文件中,仅供参考。
以下内容,永不过时。
以下所有命令都需要在「以管理员身份运行」的 Git Bash 中执行。
先克隆仓库然后 cd 到仓库目录中再执行下面的所有操作。
$ git clone https://github.com/xnng/my-git-bash.git
$ cd my-git-bash
gitee 镜像:
$ git clone https://gitee.com/xnng/bash.git
$ cd bash
此字体可解决 unicode 字符乱码问题,执行命令后,将字体文件拖放进去即可完成安装。
$ start c://Windows//Fonts && start %cd%/fonts
$ cp .minttyrc ~ && cp git-prompt.sh /etc/profile.d
安装主题后同时会开启复制粘贴快捷键:Ctrl + Shift + C/V,需要 Git Bash 版本大于 2.20.0 才可以使用。
tmux 是一个终端复用神器,可实现单窗口多标签页、分屏等功能,借助插件还能保存和一键恢复窗口数据。
tmux for windows 源地址:https://github.com/hongwenjun/tmux_for_windows
$ cp tmux/bin/* /usr/bin && cp tmux/share/* /usr/share -r
同时开启鼠标操作:
$ echo -e "setw -g mouse\nset-option -g mouse on" > ~/.tmux.conf
tmux 使用:https://juejin.im/post/5a8917336fb9a0633e51ddb9
$ cp tools/* /usr/bin
附 Git Bash 终端快捷键
按键 | 效果 |
---|---|
Alt + Enter | 全屏 |
关闭窗口 | Ctrl + D(需当前行没有字符才可用) |
清屏 | Ctrl + L |
打开终端 | 右键快捷方式,在属性中自行设置 |
复制粘贴 | Ctrl + Shift + C/V(v2.20.0 版本后才支持) |
其他快捷键遵循 Bash
标准快捷键,例如 Ctrl + R
搜索历史命令、exit
退出终端、clear
和 reset
清屏、Ctrl + E/A
光标到行首尾,等等可自行搜索。
以下为我的个人配置备份,请勿模仿。
$ cp .bash_profile ~
$ cp tmux/.tmux.conf ~
插件会使新建 tmux 工作区的时间明显变长,非必要情况下无需使用插件。
$ mkdir -p ~/.tmux/plugins/tpm
$ git clone https://github.com/tmux-plugins/tpm ~/.tmux/plugins/tpm
将注释的部分全部打开,按 prefix I
安装插件。
$ cp .gitconfig ~
在 VSCode 中使用 Git Bash
只需要在 Settings.json
中添加如下两行即可,第一行中 bash.exe
的文件路径需要改成自己的,第二行是非必须配置,不配置无法使用 alias
。
{
"terminal.integrated.shell.windows": "C:\\Program Files\\Git\\bin\\bash.exe",
"terminal.integrated.shellArgs.windows": ["--login", "-i"]
}
为 Git Bash
设置了全局快捷键后,可能出现按下快捷键后延迟两秒左右终端才打开的现象,只需要在服务中禁用掉 superFetch
即可,此服务在比较新的 win10 上改名为了 sysMain
,禁用服务后重启操作系统生效
使用某些命令,如 python
、mongo
、mysql
、redis-cli
时会发现有卡住不动的现象,只需要在命令前面加上 winpty
即可,每次之性命都都要加这个会比较麻烦,可以设置 alias
重写命令,例如:
alias wsl='winpty wsl'
alias mysql='winpty mysql -uroot -p'
alias mongo='winpty mongo'
alias redis-cli='winpty redis-cli'
很多脚手架工具在初始化项目的时候提供了可以上下选择选项的功能,该功能在 git bash 中可用,但是无法显示上下选择的效果,需要在命令前加上 winpty
,同时脚手架命令需要加上后缀 .cmd
,例如:
alias vue='winpty vue.cmd'
-
2019-11-08
- 新增 windows terminal 配置
-
2019-04-28
- 添加解决某些命令会卡住不动或无法上下选择脚手架选项的解决方法
-
2019-03-25
- 添加 vscode 配置
- 添加快捷加启动慢解决方法
-
2019-03-23
- 移除一键安装脚本,分离通用和个人配置
- 新增 tmux 演示 gif 图片
- 新增快捷键列表
-
2019-02-03
- 移除 vim 配置
- 将命令提示符由 Unicode 字符改为圆点,提高兼容性
- 修复安装脚本
- 开启 256 真色支持
- 优化 tmux 状态栏配色
- 开启 Ctrl + Shift + C/V 快捷键支持
-
2018-12-24
- 新增 tmux 插件使 session 能持久化到本地
- 终端背景色由绿色修改为灰色
- 将红色颜色配置由橙色改回红色