Windows高效开发环境配置(一)

更多精彩内容,欢迎关注公众号:逻魔代码

前言

用了多年的 MacOS 做开发,一系列诸如 Alfred、Item2、Oh-my-zsh 之类的工具,大大地提升了工作的效率和使用舒适度。新工作不给配 Mac 电脑,自己带电脑每天背着实在麻烦,就花时间研究了下如何在 Windows 上配置一个高效的开发环境,将以系列文章的形式分享出来,希望可以对使用 Windows 开发的大家有些帮助!

在 MacOS 上,iTerm2 + Oh-My-Zsh 是高效生产力工具组合,其终端命令行提示功能极其便携,尤其是 zsh-autosuggestions 命令行自动填充功能等插件。

那么在 Windows 系统中是否可以配置 Zsh 终端并安装其插件呢?

当然可以!

我们先看最终的效果:

Windows高效开发环境配置(一)

要达成此目的,有两种实现方案:

  • WSL + ohmyzsh
  • Git Bash + zsh

相比于这两种方案而言:

  • 第一种方案 WSL 直接安装 Linux 子系统,优点是支持 Linux 生态;缺点是开发时一般在主机系统,而 Linux 子系统和主机系统之间的通过网络共享文件,相对不便。
  • 第二种方案 Git Bash 优点是不用切入 Linux 子系统可直接使用 Zsh,方便;缺点则是不完全支持 Linux 命令。

那么我们选择哪种方案呢?

小孩子才做选择,大人则全都要!

WSL 提供 Linux 生态,搭建一些服务之类的;而 Git Bash + zsh 则用于日常开发,完全不冲突!Perfect ~!

就本文而言,我们先配置 Git Bash + zsh 的方案,其他方案,且听下回分解。

更多精彩内容,欢迎关注公众号:逻魔代码

安装 Git Bash

从官网下载 Git for Windows ,其包含 Git Bash、Git GUI、Shell Integration 三个部分,安装完成后, bash shell 和 git 都有了,这也是我选择它的原因。

安装过程也很简单,唯一需要注意的就是,要把如下图所示的两个选项勾选上,其他默认即可,依次下一步。

Windows高效开发环境配置(一)

安装完成后,打开 Git Bash,即可使用大部分常用的 bash 命令。

安装配置 Zsh

  1. 进入MSYS2 Packages ,点击下载 zsh 压缩包:

Windows高效开发环境配置(一)
  1. 使用7zip 解压,复制 etc、usr 两个文件夹到 Git 安装目录中,如图:

Windows高效开发环境配置(一)
  1. 打开 Git Bash,执行命令 zsh ,出现如下图所示,即表示 zsh 安装成功

Windows高效开发环境配置(一)
  1. 重要! 根据向导对 zsh 进行初始化配置,主要是 tab 补全和命令历史配置。若是因为某个原因,不小心关闭或跳过了配置向导且不再出现了,可以使用如下命令再次打开配置向导:
autoload -U zsh-newuser-install
zsh-newuser-install -f

具体配置不再详细说明,若需要帮助,请联系笔者。

  1. 配置 zsh 为 Git Bash 的默认 shell 。在 ~/.bashrc (用户主目录)中添加如下内容:
Enable zsh
if [ -t 1 ]; then
   exec zsh
fi

若安装 Git Bash 时,完全按照上文说明,则在用户根目录下,有一个 .bashrc 文件,否则请自行创建。

安装 oh-my-zsh

按照上面的步骤,我们的 Git Bash 已经和 Unix Zsh Shell 没什么区别了,接下来直接执行 oh-my-zsh 安装脚本即可:

sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"

安装插件

安装如下几个插件,提高开发效率,详细安装方法,请点击链接进入页面查看。

cd ~/.oh-my-zsh/plugins/zsh-autosuggestions
git checkout tags/v0.6.4 -b v0.6.4-branch

Windows Terminal

强烈建议安装!

Windows Terminal 是微软官方出品的新一代终端集成工具,安装之后,可以直接以 Tab 页的形式管理 CMD、PowerShell、Git Bash等。其美观性和功能性,都远远胜出 Windows 内置的 CMD 和 PowerShell。直接从应用商店安装即可,以后更新更方便。

Windows高效开发环境配置(一)

更多精彩内容,欢迎关注公众号:逻魔代码

至此,本文配置全部完成!

Original: https://www.cnblogs.com/xxcbdhxx/p/16530639.html
Author: 北鱼扶摇
Title: Windows高效开发环境配置(一)

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/589952/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • mybatis中的#和$的区别

    将传入的数据都当成一个字符串,会对自动传入的数据加一个双引号。如:order by #user_id#,如果传入的值是111,那么解析成sql时的值为order by &#8220…

    Java 2023年5月30日
    072
  • Redis(一)

    Redis(一) 本文分为以下几个部分 介绍 Linux安装 远程连接Redis 其他配置 总结 介绍 Redis是一种非关系型数据库(NoSQL) NoSQL NoSQL = n…

    Java 2023年6月5日
    082
  • Kafka 服务器参数配置

    $KAFKA_HOME/config/server.properties⽂件中的配置 一、zookeeper.connect 该参数⽤于配置Kafka要连接的Zookeeper/集…

    Java 2023年6月5日
    066
  • 【踩坑日记】Druid连接池在MySQL主备切换时引发高可用问题

    背景 由于MySQL供应商内部升级,线上数据库需要主动进行主备切换。切换基于SIP漂移,理论上是毫秒级闪断。但在实际模拟演练的过程中,除了预期内切换瞬间产生的连接异常外,后续半个小…

    Java 2023年6月5日
    082
  • MySQL之事务和redo日志

    事务 事务的四个ACID特性。 Atomicity 原子性 Consistency 一致性 Isolation 隔离性 Durability 持久性 原子性 原子性即这个事务的任务…

    Java 2023年6月16日
    090
  • Apache Druid数据查询套件详解计数、排名和分位数计算(送JSON-over-HTTP和SQL两种查询详解)

    5. 数据查询 欲看此文,必看如下两篇文章: Druid支持JSON-over-HTTP和SQL两种查询方式。除了标准的SQL操作外,Druid还支持大量的唯一性操作,利用Drui…

    Java 2023年6月15日
    072
  • Web字体简介_TTF_OTF_WOFF_EOT以及SVG

    字体格式有太多选择,不幸的是始终 没有一个能在所有的浏览器上通用 。这意味着,你必须使用多种字体的方案来保持 用户跨平台的一致性体验 。本文内容如题,会依次介绍一下 TTF、OTF…

    Java 2023年6月5日
    057
  • 多线程还是多进程的选择及区别

    转自:https://blog.csdn.net/lishenglong666/article/details/8557215 鱼还是熊掌:浅谈多进程多线程的选择 关于多进程和多线…

    Java 2023年5月30日
    086
  • Windows下 RabbitMQ的安装和配置

    简介 RabbitMQ是实现了高级消息队列协议(AMQP)的开源消息代理软件(亦称面向消息的中间件)。RabbitMQ服务器是用Erlang语言编写的,而集群和故障转移是构建在开放…

    Java 2023年6月5日
    0100
  • Day17

    告诉大家该怎样学? 这是什么? 它怎么玩? 该如何在我们平时运用? 窗口 弹窗 面板 文本框 列表框 按钮 图片 监听事件 鼠标 键盘事件 破解工具 1、简介 GUI的核心技术:S…

    Java 2023年6月5日
    064
  • HashMap 的常用遍历方式

    迭代器方式遍历 迭代器 EntrySet public class HashMapDemo { public static void main(String[] args) { M…

    Java 2023年6月8日
    064
  • Java Web Servlet 继承结构和生命周期

    Java Web Servlet 继承结构和生命周期 继承结构 继承关系如下图所示 抽象类Servlet有以下接口,其中init(),service(),destroy()三个主要…

    Java 2023年6月8日
    080
  • MySQL中IN()按照指定列指定规则排序

    404. 抱歉,您访问的资源不存在。 可能是网址有误,或者对应的内容被删除,或者处于私有状态。 代码改变世界,联系邮箱 contact@cnblogs.com 园子的商业化努力-困…

    Java 2023年6月7日
    071
  • Java:http的post请求(带参数json格式)示例代码

    Java:http的post请求(带参数json格式)示例代码: undefined import cn.hutool.core.collection.CollectionUtil…

    Java 2023年5月29日
    060
  • 畅游Flink之API-Part1(Java版)

    1.Transform 1.1.基本转换算子 map/flatMap/filter map 把数组流中的每一个值,使用所提供的函数执行一遍,一一对应。得到元素个数相同的数组流 fl…

    Java 2023年6月5日
    078
  • springboot实现读写分离

    转载:springboot实现读写分离(基于Mybatis,mysql) Original: https://www.cnblogs.com/zxf330301/p/1402860…

    Java 2023年5月30日
    088
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球