当程序员买了一台新 Mac

作为一名程序员,最趁手的“兵器”那还得是 MBP,有了一台新的 MBP 之后,肯定是要安装一大堆软件或工具的,把电脑装扮成自己喜欢的样子。

正好最近入手了一台新电脑,把安装软件的过程记录下来,下次再需要装环境直接按这个文章来就行了。

Homebrew

Homebrew 是 Mac 的包管理器,仅需执行相应的命令就能下载安装需要的软件包,可以省掉自己去下载、解压、拖拽(安装)等繁琐的步骤。

官方地址:https://brew.sh/

安装命令:

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

但是,使用这个命令大概率是会报错的:

curl: (7) Failed to connect to raw.githubusercontent.com port 443: Connection refused

所以,这里提供一个替代方案,使用国内的源进行安装:

/usr/bin/ruby -e "$(curl -fsSL https://cdn.jsdelivr.net/gh/ineo6/homebrew-install/install)"

终端

对于 Mac 用户来说,iTerm2 和 oh-my-zsh 就是两大神器。把 iTerm2 和 oh-my-zsh 配置好,不仅可以给自己打造一个舒适的开发环境,养养眼,还能大大的提升效率。

iTerm2:

官方地址:https://iterm2.com/

直接下载安装就可以了。

oh-my-zsh:

官方地址:https://ohmyz.sh/

两个安装命令:

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

当然了,大概率也是会失败的。这里再提供两个国内的源:

sh -c "$(curl -fsSL https://gitee.com/mirrors/oh-my-zsh/raw/master/tools/install.sh)"
sh -c "$(wget -O- https://gitee.com/pocmon/mirrors/raw/master/tools/install.sh)"

可以使用如下命令查看系统有哪些 shell:

cat /etc/shells

使用 echo $SHELL 查看系统当前使用的 shell。

如果想切换的话,可以使用命令:

chsh -s /bin/zsh

接下来就可以来给终端美容了,更换自己喜欢的主题,可以到下面地址来选择:

https://github.com/ohmyzsh/ohmyzsh/wiki/themes

本地主题在这个目录下:~/.oh-my-zsh/themes

然后还有两个比较重要的插件:

先进入到插件目录:

cd ~/.oh-my-zsh/custom/plugins/

1、命令补全 zsh-autosuggestion:

git clone https://github.com/zsh-users/zsh-autosuggestions

2、语法高亮:zsh-syntax-highlighting

git clone https://github.com/zsh-users/zsh-syntax-highlighting.git

配置 vim

直接分享给大家我的 vimrc 配置文件:

" 显示行号
set number
" 显示标尺
set ruler
" 历史纪录
set history=1000
" 输入的命令显示出来,看的清楚些
set showcmd
" 状态行显示的内容
set statusline=%F%m%r%h%w\ [FORMAT=%{&ff}]\ [TYPE=%Y]\ [POS=%l,%v][%p%%]\ %{strftime(\"%d/%m/%y\ -\ %H:%M\")}
" 启动显示状态行1,总是显示状态行2
set laststatus=2
" 语法高亮显示
syntax on
set fileencodings=utf-8,gb2312,gbk,cp936,latin-1
set fileencoding=utf-8
set termencoding=utf-8
set fileformat=unix
set encoding=utf-8
" 配色方案
colorscheme desert
" 指定配色方案是256色
set t_Co=256set wildmenu" 去掉有关vi一致性模式,避免以前版本的一些bug和局限,解决backspace不能使用的问题
set nocompatible
set backspace=indent,eol,start
set backspace=2" 启用自动对齐功能,把上一行的对齐格式应用到下一行
set autoindent" 依据上面的格式,智能的选择对齐方式,对于类似C语言编写很有用处
set smartindent" vim禁用自动备份
set nobackup
set nowritebackup
set noswapfile" 用空格代替tab
set expandtab" 设置显示制表符的空格字符个数,改进tab缩进值,默认为8,现改为4
set tabstop=4" 统一缩进为4,方便在开启了et后使用退格(backspace)键,每次退格将删除X个空格
set softtabstop=4" 设定自动缩进为4个字符,程序中自动缩进所使用的空白长度
set shiftwidth=4" 设置帮助文件为中文(需要安装vimcdoc文档)
set helplang=cn" 显示匹配的括号
set showmatch" 文件缩进及tab个数
au FileType html,python,vim,javascript setl shiftwidth=4
au FileType html,python,vim,javascript setl tabstop=4
au FileType java,php setl shiftwidth=4
au FileType java,php setl tabstop=4
" 高亮搜索的字符串
set hlsearch" 检测文件的类型
filetype on
filetype plugin on
filetype indent on" C风格缩进
set cindent
set completeopt=longest,menu" 功能设置" 去掉输入错误提示声音
set noeb
" 自动保存
set autowrite
" 突出显示当前行 
set cursorline
" 突出显示当前列
set cursorcolumn
"设置光标样式为竖线vertical bar
" Change cursor shape between insert and normal mode in iTerm2.app
"if $TERM_PROGRAM =~ "iTerm"
let &t_SI = "\<Esc>]50;CursorShape=1\x7" " Vertical bar in insert mode
let &t_EI = "\<Esc>]50;CursorShape=0\x7" " Block in normal mode
"endif
" 共享剪贴板
set clipboard+=unnamed
" 文件被改动时自动载入
set autoread
" 顶部底部保持3行距离
set scrolloff=3

字体

安装一个我很喜欢的一个字体 Fira Code,好看,而且也很适合用来写代码。

https://github.com/tonsky/FiraCode

VS Code

配置信息:

{"editor.fontFamily": "Fira Code","editor.fontLigatures": true,"editor.fontSize": 14,"workbench.startupEditor": "none"
}

安装 GO

直接从官网下载安装包安装即可。

修改配置:

# 启用 Go Modules 功能
go env -w GO111MODULE=on# 配置 GOPROXY 环境变量,以下三选一# 1. 七牛 CDN
go env -w  GOPROXY=https://goproxy.cn,direct# 2. 阿里云
go env -w GOPROXY=https://mirrors.aliyun.com/goproxy/,direct# 3. 官方
go env -w  GOPROXY=https://goproxy.io,direct

数据库客户端 dbeaver

官方地址:https://dbeaver.io/

开发环境

使用 Docker 搭建基本的开发环境,包括 MySQL 和 Redis 等。

这里推荐一个开源项目 gonivinck,只需要一条命令,就可以启动常用的开发环境容器。

项目地址:https://github.com/nivin-studio/gonivinck

最后,我创建了一个开源项目,项目地址:https://github.com/yongxinz/init-mac,后续有新的软件安装,或者开发环境配置,都会在这个项目中更新,大家可以 star 一下,也欢迎提 issue。


开源项目: https://github.com/yongxinz/init-mac

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

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

相关文章

STM32控制DHT11温湿度传感器模块获取温湿度数据

时间记录&#xff1a;2024/1/29 一、DHT11引脚介绍 &#xff08;1&#xff09;VCC&#xff1a;电源引脚&#xff0c;3.3-5.5V &#xff08;2&#xff09;DATA&#xff1a;数据输入输出引脚 &#xff08;3&#xff09;NC&#xff1a;保留引脚&#xff0c;悬空即可 &#xff08;…

颐和园龙纹珍宝展亮相,文物预防保护科技护航

在皇家园林颐和园的深处&#xff0c;一场独特的文化盛宴正静静上演。2月1日&#xff0c;“祥龙贺岁—颐和园藏龙纹题材文物特展”在德和园华丽揭幕。此次特展汇聚了66件珍贵文物&#xff0c;包括玉器、瓷器、书画、珐琅、家具等&#xff0c;每一件都是颐和园园藏的瑰宝。这些文…

Flink SQL Client 安装各类 Connector、组件的方法汇总(持续更新中....)

一般来说&#xff0c;在 Flink SQL Client 中使用各种 Connector 只需要该 Connector 及其依赖 Jar 包部署到 ${FLINK_HOME}/lib 下即可。但是对于某些特定的平台&#xff0c;如果 AWS EMR、Cloudera CDP 等产品会有所不同&#xff0c;主要是它们中的某些 Jar 包可能被改写过&a…

【Wireshark教程】流量分析,使用Wireshark寻找主机信息

🍬 博主介绍👨‍🎓 博主介绍:大家好,我是 hacker-routing ,很高兴认识大家~ ✨主攻领域:【渗透领域】【应急响应】 【python】 【VulnHub靶场复现】【面试分析】 🎉点赞➕评论➕收藏 == 养成习惯(一键三连)😋 🎉欢迎关注💗一起学习👍一起讨论⭐️一起进步…

力扣labuladong一刷day72天动态规划

力扣labuladong一刷day72天动态规划 文章目录 力扣labuladong一刷day72天动态规划一、343. 整数拆分二、96.不同的二叉搜索树 一、343. 整数拆分 题目链接&#xff1a;https://leetcode.cn/problems/integer-break/description/ 思路&#xff1a;本题为整数拆分&#xff0c;可…

clickhouse如何清除多个分区数据 alter table drop partition操作

官网drop partition操作 官网链接&#xff1a;https://clickhouse.com/docs/zh/sql-reference/statements/alter/partition#drop-partitionpart 官网上之有清除单个分区的例子&#xff0c;并没有对清除多个分区的场景进行描述&#xff0c;之前清除分区时也是按照官网例子进行…

MySQL系统配置

MySQL系统配置 内存相关 sort_buffer_size 定义了每个线程排序缓存区的大小&#xff0c;当索引无法满足需要的顺序信息时会用到&#xff0c;执行计划中出现using filesort&#xff0c;MySQL在有查询、需要做排序操作时才会为每个缓冲区分配内存&#xff08;直接分配该参数的全部…

在 PyTorch 中动态构建和更新模型

1. PyTorch 中动态构建和更新模型 在 PyTorch 中&#xff0c;动态构建和更新模型是其核心特性之一。这意味着开发者无需预先定义完整的计算图&#xff0c;而是在运行时根据需要构建神经网络结构&#xff0c;并可以随时修改模型参数、添加或删除网络层等。这种动态图机制为研…

【AudioPolicy To AudioHAL笔记(二)】AudioPolicyAudioFliger To AudioHAL

/*****************************************************************************************************************/ 声明: 本博客内容均由https://blog.csdn.net/weixin_47702410原创&#xff0c;转载or引用请注明出处&#xff0c;谢谢! 创作不易&#xff0c;如果文章…

【Python】【完整代码】解析Excel文件内容,按每列首行元素名打印出某个字符串的统计占比(超详细)

目录 1.示例&#xff1a; 1.1 实现代码1&#xff1a;列数为常量 运行结果&#xff1a; 1.2 实现代码2&#xff1a;列数为变量 运行结果&#xff1a; 1.示例&#xff1a; 开发需求&#xff1a;读取Excel文件&#xff0c;统计第3列到第5列中每列的"False"字段占…

【新书推荐】5.1节 16位汇编语言学习环境

第五章 16位汇编学习环境 16位汇编语言的学习环境是建立在8086计算机的基础上的&#xff0c;我将借助于DosBox虚拟机来实现16位汇编语言学习环境的搭建。 5.1节 16位汇编语言学习环境 本节内容&#xff1a;16位汇编学习环境的搭建。 ■汇编语言程序设计编程调试过程&#xff1…

【React】react组件传参

【React】react组件传参 一、props&#xff1a;父组件向子组件传参1、将普通的参数作为props传递2、将jsx作为props传递&#xff08;组件插槽&#xff09; 二、自定义事件&#xff1a;子父组件向父组件传参三、context进行多级组件传参四、redux全局状态管理 一、props&#xf…

MySQL篇----第四篇

系列文章目录 文章目录 系列文章目录前言一、数据库的三范式是什么二、第一范式(1st NF - 列都是不可再分)三、第二范式(2nd NF- 每个表只描述一件事情)四、第三范式(3rd NF- 不存在对非主键列的传递依赖)五、数据库是事务前言 前些天发现了一个巨牛的人工智能学习网站,通…

C++迷宫游戏详解

个人主页&#xff1a;[PingdiGuo_guo] 收录专栏&#xff1a;[C干货专栏] 大家好呀&#xff0c;我是PingdiGuo_guo&#xff0c;今天我们来学习用C实现一个迷宫游戏。 目录 1.迷宫的具体步骤 1.1.迷宫的初始化 1.2.寻路算法 1.DFS算法 2.BFS算法 1.3.移动 2.总结 C迷宫游…

Javascript入门:第三个知识点:javascript里的数据类型、运算符

数字类型 123 //整数 123.1 //浮点数 1.123e3 //科学计数法 -10 //负数 NaN //not a number Infinity //无限大 以上的类型在javascript里都是数字类型 字符串类型 在开始之前&#xff0c;我需要先说明白两个知识点&#xff1a; console.log()是啥&#xff1f; let 与 v…

【C++初阶】C++入门(2)

&#x1f525;博客主页&#xff1a; 小羊失眠啦. &#x1f3a5;系列专栏&#xff1a;《C语言》 《数据结构》 《C》 《Linux》 《Cpolar》 ❤️感谢大家点赞&#x1f44d;收藏⭐评论✍️ 文章目录 一、函数重载1.1 函数重载的概念1.2 函数重载的种类1.3 C支持函数重载的原理 二…

服务器常遇的响应状态码

服务器常遇的响应状态码 状态码 500 表示服务器内部错误。 这种状态码意味着服务器在尝试执行请求时遇到了意外情况。在处理这种状态码时&#xff0c;我们需要联系服务器管理员或服务提供商以获取更多信息。 处理方法&#xff1a;联系服务器管理员或服务提供商以获取更多信息…

Ubuntu中rosdep update报错的解决办法

1.问题&#xff1a; Ubuntu22.04系统下面&#xff0c;rosdep update总是报错 2.方法 2.1 方法一 a.直接访问raw.githubusercontent.com不可行&#xff0c;按一下网址查询raw.githubusercontent.com的ip地址 多个地点ping[raw.githubusercontent.com]服务器-网站测速-站长工…

计算机网络——链路层(1)

计算机网络——链路层&#xff08;1&#xff09; 小程一言专栏链接: [link](http://t.csdnimg.cn/ZUTXU)前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家&#xff0c; [跳转到网站](https://www.captainbed.…

C语言第十七弹---指针(一)

✨个人主页&#xff1a; 熬夜学编程的小林 &#x1f497;系列专栏&#xff1a; 【C语言详解】 【数据结构详解】 指针 1、内存和地址 1.1、内存 2、指针变量和地址 2.1、取地址操作符&#xff08;&&#xff09; 2.2、指针变量和解引用操作符&#xff08;*&#xff09;…