[Mac] 爽翻天的配置
Mac Configuration For Love
Foreword
终于投入mac的怀抱了,搞!
Programming Env
Haskell
下载
下载 ghcup —— an installer for the general purpose language Haskell
在命令行直接用ghci
进行交互式的 repl 了
编译器:GHC Glasgow Haskell Compiler
VScode 插件
直接搜 haskell 安装即可
还可以参考 medium 这篇(墙外)
C/C++
编译器直接用clang就可以了
然后在vscode里面配置
推荐直接看官网
编译:⌘ + ⇧ + b
Golang
brew info go
先看看info
brew install go
应该需要科网吧,反正我是开了的,不开没试过
go version
查看版本
Python
直接装 anaconda 吧省事,官网找到mac的下载,一步步安装
conda config --set auto_activate_base false
取消每次都激活base环境
当然也可以重新设置为 true
激活的时候还是conda activate
创建环境的时候有点坑。。
conda create -n <envName> python=3.7
一定要指定一下解释器版本,不然默认是python2.7
Java
java
在命令行里试一下会提示要安装,直接点开链接
在官网下载安装dmg,打开是pkg,安装即可
也不需要配置proflie文件里面的路径。。看网上配置那些路径是为了能够在任何地方使用java
检查是否安装成功
java -version
java
javac
写个helloworld试试
public class Helloworld {
public static void main(String[] sss) {
System.out.println("hello java");
}
}
javac Helloworld.java
java Helloworld
hello java
Node
nvm
node version manager,项目用到node版本可能都不一样
安装curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.11/install.sh | bash
安装和切换版本
nvm install v8.11.3 | 8 # 安装某个版本
nvm use 8 # 切换
nvm ls # 查看已经安装的版本
nvm alias default 12 # 设置默认版本
命令行中如果command nvm not found
的话:
- 在
.zshrc
中加入[[ -s $HOME/.nvm/nvm.sh ]] && . $HOME/.nvm/nvm.sh # This loads NVM
source .zshrc
一下
切换 node 的下载源:
- 在
.zshrc
中加入:export NVM_NODEJS_ORG_MIRROR=https://npm.taobao.org/dist
切换为淘宝
nrm
统一的 npm 源管理,npm 和 yarn 同时管理
通常全局配置用npm config set registry https://registry.npm.taobao.org
全局安装 npm install -g nrm
nrm ls
nrm add 名字 源的地址
nrm use 名字
nrm test
测试速度
npm
node 的包管理器,不多说了
yarn
与安装缓慢的
npm
相比,yarn
通过并行安装与离线模式的缓存,使其模块安装速度快的令人发指,并且还做出了多项改进,因此在新的项目中,推荐使用yarn
brew install yarn
Softwares
https://github.com/jaywcjlove/awesome-mac上有非常棒的软件推荐
远程连接文件传输
filezilla,还挺好用的,和 win-scp 差不多,拖来拖去传文件
去官网 https://filezilla-project.org/ 下载就好
解压rar
brew install unrar
添加oh-my-zsh的插件extract
命令行用x
即可
cleanmymac
vscode
不多说了官网直接下载解压就是app了
记得拖到应用程序
在.zshrc
中加入alias code=/Applications/Visual\ Studio\ Code.app/Contents/Resources/bin/code
,source一下之后就可以code <path>
了
命令行code
指令直接官方的操作,⇧ + ⌘ + p
然后输入类似shell command install 'code'
的语句就让 vscode 自己帮我们在环境变量中加 code 指令
工具插件推荐
- 主题啥的自己挑吧
- gitlens:git必用,特别好用
- rainbow bracket:彩虹色括号
- rainbow indent:彩虹色锁进
- polacode:分享代码的好插件
⌘ + ⇧ + p
-> polacode - code spell checker:检查拼写
⌘ + .
to fix spelling - leetcode:刷leetcode适合装这个,按照教程登陆
- Prettier: 可以用
.prettierrc.js
文件自定义格式要求,是一个 module,也可以在设置里面配置 - code runner:跑代码的,推荐
- javascript console utils:写 JS 的时候让
console.log
更加方便,⌘ + ⇧ + L
生成console.log
行(选中变量会自动填充),⌘ + ⇧ + D
删除文档内所有的console.log
行(但那一行不会被删。。),PS:由于删除的快捷键被 Dato 占用了,就改成了⌘ + ⌥ + D
homebrew
(必装)命令行装包工具,The Missing Package Manager for macOS (or Linux)这missing是指?
名字很有意思,酿酒厂?
安装
按照brew.sh官网教程安装,使用很简单
检查是否装好brew doctor
若上面命令执行过程出现 hombrew libevent not link 的错误,执行下面命令即可:
sudo chown -R $USER $(brew --prefix)
使用
brew search git
搜索
brew list
brew update
brew cask install firefox
能省去拖动图标到Application的操作哟
这个cask,木桶,装入桶内,有趣的词语
git
brew install git
密钥
ssh-keygen -t rsa -C "${你的邮箱地址}"
docker
官网下载dmg安装 or 阿里云Docker dmg镜像
Iterm2
安装
brew cask install iterm2
使用
分屏快捷键操作:
⌘ + d
: 垂直分屏⌘ + ⇧ + d
: 水平分屏⌘ + ]
和⌘ + [
在最近使用的分屏直接切换⌘ + ⌥ + 方向键
: 切换到指定位置的分屏
快捷键丰富(不一一详细列举,只列了几个目前常用的)
⌘ + 数字
: 切换标签页,⌘ + 方向键
按方向切换标签页貌似是滚轮的作用⌘ + enter
: 切换全屏⌘ + t
: 新的标签页⌘ + w
: 关闭标签页⌘ + r
: 清屏⌘ + /
: 定位cursor⌘ + ⌥
: 按住这两个键可以拖一个长方形来选择
选中即复制
- 一种是用鼠标,在iTerm2中,选中某个路径或者某个词汇,那么,iterm2就自动复制了;
- 另一种是无鼠标模式,按下
⌘ + f
,弹出iTerm2的查找模式,输入要查找并复制的内容的前几个字母,确认找到的是自己的内容之后,按下tab
,查找窗口将自动变化内容,并将其复制。如果按下的是shift + tab
,则自动将查找内容的左边选中并复制。
管理密码:window -> Password Manager 中配置账号秘密,比如常用的sudo
密码,if u want... 快捷键⌥ + ⌘ + f
Preferences -> Pointer 按住⌘点击文件/目录就会打开 finder,贼方便
标记命令的 mark
- 可以为那一行命令加一个marker,复盘
- Edit -> Marks and annotations 看如何设置和跳转mark的快捷键
主题配置
色彩主题:https://github.com/mbadolato/iTerm2-Color-Schemes
oh-my-zsh
基于 zsh
的增强配置, 附带各种常用的插件
zsh是什么
https://www.zsh.org/好像崩了看知乎吧,比cmd,bash好用的shell
安装
sh -c "$(curl -fsSL https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"
设置为默认 zsh:chsh -s /bin/zsh
在.zshrc
中配置
HIST_STAMPS="yyyy-mm-dd"
HISTFILESIZE=100000
HISTFILE=~/.zsh_history
插件
在.zshrc
中写入plugins=(name)
,安装完 oh-my-zsh 就会有,找到即可
autojump
- 非常好用的懒人跳转路径插件,根据cd到目录的频率作为权重
- python写的https://github.com/wting/autojump
brew install autojump
在.zshrc
中的plugins加上autojump,source一下j | autojump <路径/部分名字>
jc
(child directory),jo
(open in finder),jco
j --stat
查看权重,可以在data所指的文件夹修改- 反正就j来j去
git
gst
=>git status
gco
=>git checkout
ga
=>git add
gb
=>git branch
ggpul
=>git pull origin "$(git_current_branch)"
gl
=>git pull
gcmsg
=>git commit -m
- 其他 alias 见https://github.com/ohmyzsh/ohmyzsh/tree/master/plugins/git/#aliases
extract
- 命令行用
x filename
即可 - 会自动根据所解压的文件类型,比如rar就会调用
unrar
去解压,前提是你要安装
zsh-autosuggestions
- 安装见github: https://github.com/zsh-users/zsh-autosuggestions
- 在
.zshrc
中加入bindkey '^v' autosuggest-accept
可以增加填充的快捷键,我给的⌃ + v
,默认是右方向键(始终有效) - 可以配置提示的颜色
ZSH_AUTOSUGGEST_HIGHLIGHT_STYLE="fg=#1ABDE6"
也可以ZSH_AUTOSUGGEST_HIGHLIGHT_STYLE="fg=#ff00ff,bg=cyan,bold,underline"
用逗号隔开,这个bg是cyan很丑。。
zsh-syntax-highlighting
-
高亮命令行语法的,github:https://github.com/zsh-users/zsh-syntax-highlighting
-
同样可以配置
ZSH_HIGHLIGHT_HIGHLIGHTERS=(main brackets pattern cursor) # To have commands starting with `rm -rf` in red: ZSH_HIGHLIGHT_PATTERNS=('rm -rf *' 'fg=white,bold,bg=red')
-
参考色彩配置:https://coderwall.com/p/qmvfya/syntax-highlighting-for-zsh
TODO还有好用的插件
主题
用powerlevel10k,安装起来有点复杂,但是很好看!
- 跟着步骤来,非常简单
git clone --depth=1 https://github.com/romkatv/powerlevel10k.git ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/themes/powerlevel10k
- Set
ZSH_THEME="powerlevel10k/powerlevel10k"
in~/.zshrc
. - source之后,Type
p10k configure
to access the builtin configuration wizard right from your terminal.一步一步配置,记得一定要安装他推荐的字体
git符号的含义:https://github.com/romkatv/powerlevel10k#what-do-different-symbols-in-git-status-mean
如果在vscode中也要用iterm2,记得配置一下默认shell,并且在字体family中加MesloLGS NF
字由&字魂
都是可以获取免费商用字体的软件
VPN
自行查找。。
OS stuff
just like linux/unix
exa for ls
Rust 写的,ls 的现代替换方案。github
比 ls
爽太多了吧,赶紧 alias ls 吧。
安装
brew install exa
Display Options
- -1(数字1), --oneline: display one entry per line
- -G, --grid: display entries as a grid (default)
- -l, --long: display extended details and attributes
- -R, --recurse: recurse into directories
- -T, --tree: recurse into directories as a tree
- -x, --across: sort the grid across, rather than downwards
- -F, --classify: display type indicator by file names
- --colo[u]r: when to use terminal colours (auto, auto, never)
- --colo[u]r-scale: highlight levels of file sizes distinctly
- --icons: display icons 酷,太酷了
Filtering Options
- -a, --all: show hidden and 'dot' files
- -d, --list-dirs: list directories like regular files
- -L, --level=(depth): limit the depth of recursion
- -r, --reverse: reverse the sort order
- -s, --sort=(field): which field to sort by
- --group-directories-first: list directories before other files
- -D, --only-dirs: list only directories
- --git-ignore: ignore files mentioned in
.gitignore
- -I, --ignore-glob=(globs): glob patterns (pipe-separated) of files to ignore
Long View Options
只有-l
模式下可以用
- -h, --header: add a header row to each column
- -b, --binary: list file sizes with binary prefixes
- -B, --bytes: list file sizes in bytes, without any prefixes
- --git: list each file's Git status, if tracked or ignored
还有好多 long 模式下展示的选项,详见 github
如何剪切
⌘ + c
之后⌘ + ⌥ + v
如果无法访问例如github
网络不太行。。。
上https://www.ipaddress.com/去找这个域名对应的ip
加到你的hosts
文件
当然得到ip的方法不止这一种,直接看请求头也很快
实在不行试试连vpn
或者换 dns 服务器域名
特殊表情、字符
⌃ + ⌘ + ␣
开启面板
快捷键汇总
- 隐藏/显示程序dock:
⌥ + ⌘ + d
- 分屏:鼠标悬停在全屏键两秒
- 截全屏:
⇧ + ⌘ + 3
- 区域截屏:
⇧ + ⌘ + 4
- 多功能截屏/录屏:
⇧ + ⌘ + 5
- 全局文件搜索/快捷打开finder:
⌥ + ⌘ + ␣
- 新建窗口:
⌘ + n
啥都可以新开 - 强制退出应用:
⌘ + ⌃ + esc
- 推出硬盘:
⌘ + e
显示隐藏文件
⌘ + ⇧ + .
finder下使用Command+Shift+G,隐藏文件夹也能访问
见https://support.apple.com/zh-cn/HT201586
Catalina 10.15 修改根路径文件解决方案
背景
- 尝试修根目录报错mkdir: /data: Read-only file system
- 发现无法在根路径下创建/修改,是macos新版本的硬性规定
解决方案:将需要的根目录下路径软连接到非根目录(相当于给一个跨快捷方式)
需要关闭System Integrity Protection(SIP)服务才可重新挂载,具体操作步骤如下:
- 关机按 cmd+R 重启进入恢复模式, 关闭 SIP(命令:
csrutil disable
), 正常重启 - 在自己的目录下创建 /usr/local/casual/data 文件夹,这个目录随意,有权限即可(添加权限使用chmod指令)
- 重新挂载根目录 (命令:
sudo mount -uw /
) - 软连接目录
sudo ln -s /usr/local/casual/data /data
- 关机按 cmd+R 重启进入恢复模式, 打开 SIP(命令:
csrutil enable
), 正常重启