搭建开发环境-Mac

news2024/9/24 5:25:23

概述

上一篇搭建开发环境-WSL+Ubuntu 记录了WSL 和Ubuntu 下开发环境的搭建。这一篇就说下Mac开发环境的搭建。
就像很多人误以为Mini 是专为女孩子设计的高颜值车,其实是一辆极其hardcore 的拉力车一样。
很多人都被Mac 那高颜值蒙蔽了,其实这是一台生产力满满的生产工具。
生产力镇楼

那既然作为生产工具,我们自然也要好好的配置一下了。

Setep

1. 安装常用软件

  • vscode
  • idea
  • pycharm
  • postMan
  • anaconda

2. Homebrew

Linux 下有yum, apt-get 等, 对应到Mac, 就是Homebrew了。
说到这里,就不得不提那个著名的段子,Homebrew 的作者Max Howell 面试Google被拒了。

Max Howell 在 Google 面试,但 Google 拒绝了他,给出的答复是:“虽然我们 90%的工程师都用你写的软件,但抱歉我们不能聘用你,因为你无法在白板上写出翻转二叉树。” 

一键安装脚本如下

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

连接在此
brew.sh

国内换Giteee

/bin/zsh -c "$(curl -fsSL https://gitee.com/cunkai/HomebrewCN/raw/master/Homebrew.sh)"

常用命令

/// 安装
brew install FORMULA|CASK...

/// 搜索
brew search TEXT|/REGEX/

/// 卸载包
brew uninstall FORMULA|CASK...

/// 查看安装列表
brew list [FORMULA|CASK...]

/// 查看包信息
brew info [FORMULA|CASK...]

/// 查看哪些包可以更新
brew outdated 

/// 更新指定包(安装新包,但旧包依旧保留)
brew upgrade [FORMULA|CASK...]

/// 更新Homebrew
brew update                  

/// 清理旧版本和缓存
brew cleanup       					# 清理所有包的旧版本
brew cleanup [FORMULA ...]  # 清理指定包的旧版本
brew cleanup -n             # 查看可清理的旧版本包,不执行实际操作

/// 锁定不想更新的包(因为update会一次更新所有的包的,当我们想忽略的时候可以使用这个命令)
brew pin [FORMULA ...]      # 锁定某个包
brew unpin [FORMULA ...]    # 取消锁定

/// 软件服务管理
brew services list  								# 查看使用brew安装的服务列表
brew services run formula|--all  		# 启动服务(仅启动不注册)
brew services start formula|--all  	# 启动服务,并注册
brew services stop formula|--all   	# 停止服务,并取消注册
brew services restart formula|--all # 重启服务,并注册

2. 安装iTerm2

iterm2 个人用的最顺手的Mac OS 上的终端工具。

brew install iTerm2

设置为默认终端工具

改个主题iTerm2-Color-Schemes
操作方法和主题预览详见以上github。个人还是喜欢默认的。

一些小设置

  • 光标选择:iTerms2提供了三种光标可供选择:_、|、[],打开iTerm2,打开Preferences配置界面,Profiles -> text-> cursor,选择自己想要的光标即可。
  • 窗口设置:打开Preferences配置界面,Profiles -> Window,根据自己的需求设置窗口透明度、背景图片、行列数以及风格等。
  • 置终端历史行数: 打开Preferences配置界面,Profiles -> Terminal,根须需求进行修改,如果想不限制行数可以勾选Unlimited scrollback

3. 安装 oh-my-zsh

sh -c "$(curl -fsSL https://raw.github.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"
chsh -s /bin/zsh 

# set oh my zsh theme
##vi .zshrc
##ZSH_THEME="afowler"
## 更多主题参见 https://github.com/ohmyzsh/ohmyzsh/wiki/Themes

## plugins 自动补全和加亮
git clone https://github.com/zsh-users/zsh-autosuggestions ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-autosuggestions
git clone https://github.com/zsh-users/zsh-syntax-highlighting.git ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-syntax-highlighting
## 更多插件,查看 https://github.com/ohmyzsh/ohmyzsh/wiki/Plugins

## plugin 配置
#vi .zshrc
#plugins=(git
#zsh-autosuggestions
#zsh-syntax-highlighting
#)

4. autojump

brew install autojump

#编辑配置文件
vim ~/.zshrc

#在最后一行增加下面的代码
[ -f /usr/local/etc/profile.d/autojump.sh ] && . /usr/local/etc/profile.d/autojump.sh

#退出编辑后执行使配置生效
source ~/.zshrc 

5. 触摸板小技巧

Mac 最爱的就是这个触摸板了,丝滑顺畅,各种手势配合,那叫一个行云流水。
主要手法有:

  • 触控板查词功能:当我们在浏览网页或者文档的时候,如果遇到了生词,只要把光标移到这个生词,用力按下触控板,就会弹出词典。
  • 触控板滚动功能:双指在触控板上上下滑动为上下滚动,双指在触控板上左右滑动为左右滑动。
  • 触控板翻页功能:正浏览网页的时候,如果需要回到上一页,只需要用双指,在触控板上向右滑动,就可以回到上一页,向左滑动就可以翻到下一页。和上一步的区别,是上一步是直线,这里画弧线。
  • 触控板缩放功能:Mac上的缩放功能跟在手机上的操作方式一样的,以查看照片为例,我们只需要把光标移动到需要放大的部分,在触控板上用双指捏合,就可以实现缩放的功能。
  • 触控板旋转功能:如果你正在查看照片,想要旋转照片,该怎么操作呢?操作的方式跟在手机上一样,只需要用双指在触控板上旋转就可以了。
  • 三指拖移:最帅技巧,切屏全靠它。
  • 锁屏:一般设在右下角,和水果忍者一般,直接一滑。
    其余可以参见 一口气了解Mac触控板的使用小技巧,是时候扔掉鼠标了!

6. Docker

$ sudo hdiutil attach Docker.dmg
$ sudo /Volumes/Docker/Docker.app/Contents/MacOS/install
$ sudo hdiutil detach /Volumes/Docker

小结

对我目前而言,配好iTerms,brew 和VSCode,基本就能用了。相比WSL 还是省事不少。

REF

  • Mac已到手?从零开始,八步打造一个高效舒适的开发环境

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/930951.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

为DOSBOX增加外部串口功能

如果DOSBOX内部串口与宿主机串口通互通,那DOSBOX中各种语言开发的程序均与外界有了串行通信功能,MODBUS with DOSBOX也就实现了。下面的操作,为DOSBOX打开通往外部的串行通信接口。 1. 在宿主机上创建虚拟串口对。方法是安装 Free 的 com0co…

【NLP的python库(01/4) 】: NLTK

一、说明 NLTK是一个复杂的库。自 2009 年以来不断发展,它支持所有经典的 NLP 任务,从标记化、词干提取、词性标记,包括语义索引和依赖关系解析。它还具有一组丰富的附加功能,例如内置语料库,NLP任务的不同模型以及与S…

【LeetCode75】第三十七题 二叉树中的最长交错路径

目录 题目: 示例: 分析: 代码: 题目: 示例: 分析: 给我们一棵二叉树,问我们在这棵树里能找到的最长交错路径。最长交错路径就是在二叉树里一左一右一左一右这样走,最…

Golang Gorm 高级查询之where + find

插入测试数据 package mainimport ("fmt""gorm.io/driver/mysql""gorm.io/gorm" )type Student struct {ID int64Name string gorm:"size:6"Age intEmail *string }func (*Student) TableName() string {return "student&q…

自动化测试概况和认知

前言 书中说测试架构师掌握自动化测试的目的不是设计自动化架构或是具体来部署自动化,而是用好自动化。其实这一点我觉得对涉及自动化测试的人员都是通用的,只是偏重点不同。 往往自动化测试前期投入成本可能会大一点,比如框架设计、技术选…

神经网络的工作原理

目录 神经网络的介绍 神经网络的组成 神经网络的工作原理 Numpy 实现神经元 Numpy 实现前向传播 Numpy 实现一个可学习的神经网络 神经网络的介绍 神经网络受人类大脑启发的算法。简单来说,当你睁开眼睛时,你看到的物体叫做数据,再由你…

【论文笔记】Planning and Decision-Making for Autonomous Vehicles

文章目录 Summary1. INTRODUCTION2. MOTION PLANNING AND CONTROL2.1. Vehicle Dynamics and Control2.2. Parallel Autonomy2.3. Motion Planning for Autonomous Vehicles 3. INTEGRATED PERCEPTION AND PLANNING3.1. From Classical Perception to Current Challenges in Ne…

一篇读懂辐射检测仪应用解决方案技术(附方案选型及原理分析)

关于常见的辐射检测仪应用方案: 辐射检测仪是用于测量环境中辐射水平的设备,常用于核电站、医疗机构、实验室和核辐射工作场所等地方。以下是一种可能的辐射检测仪应用方案: 实时监测:辐射检测仪可以实时监测环境中的辐射水平&am…

NIST测试包的可能问题

其实,大多数出现的问题,可能或多或少都可能跟数据集的大小相关。 如: Random Excursions Variant,在测试结果中,可能显示为横线,打开原始报告,可以看到: WARNING: TEST NOT APPLICABLE. THERE ARE AN INSUFFICIENT NUMBER INSUFFICIENT NUMBER OF C…

【C++ 学习 ⑰】- 继承(下)

目录 一、派生类的默认成员函数 二、继承与友元 三、继承与静态成员 四、复杂的菱形继承及菱形虚拟继承 五、继承和组合 一、派生类的默认成员函数 派生类的构造函数必须调用基类的构造函数初始化基类的那一部分成员。如果基类没有默认构造函数,那么必须在派生…

spring框架:简介+依赖注入

目录 一、spring简介 二、创建项目 三、spring创建对象 四、SpringBean管理 1.注入实现-XML 2.注入实现-注解 一、spring简介 spring诞生与2003年,是一个轻量级的、IOC( Inversion Of Control 控制反转)和AOP(Aspect Oriented Programming 面向切面编程)的jav…

linux挂载内网镜像源文件,支持yum安装

cd /etc/yum.repos.d/vim kylin_aarch64.repo 重建yum缓存 yum clean allyum makecacheyum repolist

【vue】实现高性能虚拟滚动的Vue代码解析

在前端开发中,当需要展示大量数据时,如何保持页面的流畅性是一个挑战。传统的滚动方式会将所有数据一次性渲染到页面,这可能导致页面加载缓慢甚至崩溃。而虚拟滚动技术能够解决这个问题,它只渲染可视区域内的数据,从而…

Vue2向Vue3过度Vuex核心概念actions

目录 1 核心概念 - actions1.定义actions2.组件中通过dispatch调用 2 辅助函数 -mapActions 1 核心概念 - actions state是存放数据的,mutations是同步更新数据 (便于监测数据的变化, 更新视图等, 方便于调试工具查看变化), actions则负责进行异步操作 说…

用Python写一个武侠游戏

前言 在本教程中,我们将使用Python写一个武侠类的游戏,大的框架全部搭好了,很多元素都可以自己添加,让游戏更丰富 📝个人主页→数据挖掘博主ZTLJQ的主页 个人推荐python学习系列: ☄️爬虫JS逆向系列专栏 -…

PHP自己的框架cookie()使用(完善篇七)

1、PHP自己的框架cookie() 2、cookie类&#xff08;CookieBase.php&#xff09; <?php class CookieBase {/*** 设置cookie*/public static function set($name, $value, $expire 3600, $path , $domain , $secure false, $httponly false) {setcookie($name, $valu…

Verilog 实现超声波测距

Verilog 实现超声波测距 教学视频&#xff1a; https://www.bilibili.com/video/BV1Ve411x75W?p33&spm_id_frompageDriver&vd_source19ae31dff4056e52d2729a4ca212602b 超声波测距原理 参考资料&#xff1a;STM32的超声波测距程序_超声波测距stm32程序_VaderZhang的…

cs231n assignment3 q5 Self-Supervised Learning for Image Classification

文章目录 嫌墨迹直接看代码Q5 Self-Supervised Learning for Image Classificationcompute_train_transform CIFAR10Pair.__getitem__()题面解析代码输出 simclr_loss_naive题面解析代码输出 sim_positive_pairs题面解析代码输出 compute_sim_matrix题面解析代码输出 simclr_lo…

37、springboot 为 spring mvc 提供的自动配置及对自动配置的一些自定义定制(大体思路)

springboot 为 spring mvc 提供的自动配置及对自动配置的一些自定义定制&#xff08;大体思路&#xff09; ★ Spring Boot主流支持两个MVC框架&#xff1a; Spring MVC&#xff08;基于Servlet&#xff09; Spring WebFlux&#xff08;基于Reactive&#xff0c;属于响应式AP…

开源双语对话语言模型 ChatGLM-6B 本地私有化部署

本文首发于&#xff1a;https://www.licorne.ink/2023/08/llm-chatglm-6b-local-deploy/ ChatGLM-6B 是一个开源的、支持中英双语的对话语言模型&#xff0c;基于 General Language Model (GLM) 架构&#xff0c;具有 62 亿参数。结合模型量化技术&#xff0c;用户可以在消费级…