win10下使用git for windows sdk快速搭建实用又美观的终端

目标

不折腾,本着实用的原则,装一个zsh,并使用oh-my-zsh的配置,让它看上去跟mac差不多,使用体验也差不多。

电脑是用来用的,不是用来折腾的,一切对于效率提升没有帮助的美化,都是耍流氓,有这功夫还不如出去撩撩妹,和现实中的朋友面对面聊聊天,比对着电脑打字有意思多了。

对比

我之前使用mac工作的,不得不说,各种体验确实很好,也有了一些使用习惯。现在突然换到win10,还真是有点不适应。为了装一个类似mac的终端,我花了点时间学习了一下win10,可用的工具很多,但都没有zsh用着顺手,简单总结如下:

powershell

win10自带,装了powerline字体后,并启用utf-8支持,继续安装oh-my-posh,再配合conemu,可以让它长得很好看,但是没有zsh,没有git alias,git log时中文乱码,与vim集成时各种诡异的bug。

powershell-oh-my-posh.png

cmd

除了启动比powershell快,没有啥其他特点了。

cygwin

Cygwin is a large collection of GNU and Open Source tools which provide functionality similar to a Linux distribution on Windows.

很多人在windows上都会推荐这个,确实,应该是最好用的linux shell了,但是在尝试cygwin的时候,我已经配置好了我的终端环境,所以就没有细细研究。网上已经有很多关于cygwin的配置和美化方式,我就不再赘述了。

wsl

这是我觉得win10上最好的功能之一,这是一个除虚拟机之外,windows上最真实的linux环境了,用来做测试、编译等,真的时非常棒。但是如果用作日常shell,它确实有几个问题让我感觉不太顺手。

  • 部分功能不能和windows共享。比如java,windows上安装后,wsl里也得安装,二者不通用,类似的还有node、vim、git等。
  • 用户主目录与windows不一致,各种profile不能共享。虽然通过定制用户主目录可以解决,但修改后仍然会有诡异的问题,主要集中在文件权限上。
  • git下文件格式不一致。如果在wsl中安装了git,windows上也安装了git bash,并且代码在windows上的某个目录下,那么在wsl下使用git status时,会出现所有文件都已被修改的情况,估计是windows和linux的换行符不一致导致。

git bash

这是我觉得windows下最实用的终端工具了,wsl的各种问题在git bash下都不存在,除了没有包管理工具,长得寒碜点,没啥缺点。

babun

初次使用,有种惊艳的感觉,开箱即用,什么oh-my-zsh、git、vim、包管理,一应俱全,啥都有,要说唯一不足,安装文件太大,启动速度太慢,开个babun,可以强制自己喝口水,上个厕所。

Git for Windows SDK

这是我想推荐的一款软件,相当于git bash的加强版,通过pacman进行包管理,补充了git bash的不足。官方网站:https://gitforwindows.org/

安装

官网默认下载的是git bash,拖动滚动条到页面的最低端,可以看到git for windows sdk的下载连接:

git-for-windows-sdk-download.png

点击下载,会得到一个3M多的自解压exe:git-sdk-installer-1.0.7-64.7z.exe

双击文件,选择解压目录

git-for-windows-sdk-setup.png

解压缩后会自动开始安装,安装过程实际上就是从git上把文件下载到本地,对于国内用户,可以先设置好代理。

git-for-windows-sdk-setup1.png

全部文件下载完成后,是这个样子

git-for-windows-sdk-setup2.png

双击mingw64.exe,进入git for windows sdk

git-for-windows-sdk-setup3.png

在桌面上创建一个快捷方式,在命令行窗口下,输入

sdk create-desktop-icon

这样就创建了桌面快捷方式,这种方法有个弊端,就是打开git for windows sdk后,默认是根目录,不是用户主目录,如果想打开后自动是用户主目录,可以修改刚刚创建的快捷方式

git-for-windows-sdk-update-shortcut.png

修改字体是必不可少的工序,首推 DejaVu Sans Mono for Powerline

git-for-windows-sdk-update-font.png

至此,git for windows sdk安装完毕,看上去和git bash是一样的,但是增加了pacman包管理,有了pacman,我们就可以安装各类linux工具了。

git-for-windows-sdk-finish.png

简单配置

默认界面虽然能用,但有了pacman的加持,可以通过安装zsh和tmux,得到更好的体验。

安装zsh和oh-my-zsh

pacman -S zsh

oh-my-zsh的安装请参考官方网站:https://github.com/robbyrussell/oh-my-zsh

sh -c "$(curl -fsSL https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"

全部安装完成后,输入zsh,即可看到熟悉的界面了

git-for-windows-sdk-finish1.png

安装tmux

由于git for windos sdk和git bash默认是单窗口应用,没有tab页,这可以通过tmux来解决。

pacman -S tmux

安装完成后,输入 tmux,进入tmux界面,再输入zsh,即可愉快的使用git for windows sdk了

git-for-windows-sdk-finish2.png

在工作到一半需要离开的时候,可以直接关掉git for windows sdk窗口,下次再打开后,直接输入 tmux a,即可接着之前的工作继续进行,方便。

tmux的一个小坑

tmux安装完成后,打开vim,会发现很别扭,颜色不对

git-for-windows-sdk-finish3.png

解决方法:https://unix.stackexchange.com/questions/1045/getting-256-colors-to-work-in-tmux

原因在上面的链接里已经详细说了,简单讲,启动tmux的时候,输入:

tmux -2

这样再启动vim的时候,颜色就正常了

git-for-windows-sdk-finish4.png

总结

cygwin其实也能实现,也许比git for windows sdk更简单,更方便,只不过我没有时间再继续对比和研究了,cygwin很成熟,网上有很多教程可以参考。

而git for windows sdk相关的文章却不多,所以我就花时间研究了下。还有另外一种方法,直接修改 /etc/profile.d/git-prompt.sh ,我觉得有点麻烦,并且还需要配置profile实现各种oh-my-zsh下的alias,不如直接安装zsh和oh-my-zsh省事儿。

目前我只是轻度使用,尚未发现问题,随着使用的深入,肯定会遇到问题,到时我会持续更新此文。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,456评论 5 477
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,370评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,337评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,583评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,596评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,572评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,936评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,595评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,850评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,601评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,685评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,371评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,951评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,934评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,167评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 43,636评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,411评论 2 342

推荐阅读更多精彩内容