Mac 配置教程

Stella981
• 阅读 686

Mac 配置教程

将 Mac 日常使用的软件和开发软件区分开,将之前写的 Mac 配置的文章分成了两篇:

图床

设置快捷键 Command+Shift+u

设置快捷键是 command+shift+p

免密登录

brew install ssh-copy-id
ssh-copy-id root@1.2.3.4
# 等价于
ssh-copy-id -i ~/.ssh/id_rsa.pub root@1.2.3.4 -p 22

ssh-copy-id 这个工具,它的原理其实是把自己的公钥(默认使用 ~/.ssh/id_rsa.pub 这个文件中的内容)复制到目标服务器的 ~/.ssh/authorized_keys 文件内。

可以利用 SSH 的配置文件来记住已有的配置,快速登录:

编辑~/.ssh/config 文件:

Host ss
    HostName x.x.x.x
    User root
    Port 22
    IdentityFile ~/.ssh/id_rsa

后续,仅需要ssh ss,即可免密登录。

网络分析

  • HTTP View 超酷的HTTP(S)的调试助手,一键拦截HTTP(S),仔细研究和检查流量,并准确地发现您的代码正在发送什么。

编程字体

  • Hack 专为在源代码中使用而设计的开源字体

alfred

  • 唤起快捷键设为:command双击
  • 输入框:lock,锁屏
  • empty 清空回收站,瞬间强迫症患者清爽了。
  • eject 命令可以弹出磁盘、存储卡或者虚拟磁盘镜像,如 .dmg 挂载后的磁盘。
  • open + 文件名或者空格 + 文件名 搜索文件,Enter 键直接打开文件,+Reveal in Finder 可以在文件夹中打开文件;
  • find + 文件名 直接在文件夹中打开文件;
  • 输入 in 命令,以及待搜索的文本,列出磁盘中包含该文本的相关文件,可以快速定位文件,相当于简易的终端 find 命令。

快捷搜索URL:

百度- https://www.baidu.com/s?ie=utf-8&f=8&wd={query}
淘宝 -  https://s.taobao.com/search?q={query}
豆瓣电影:http://movie.douban.com/subject_search?search_text={query}&cat=1002
bilibili:http://search.bilibili.com/all?keyword={query}
百度:https://www.baidu.com/s?ie=utf-8&f=8&wd={query}
stackoverflow:http://www.stackoverflow.com/search?q={query}
githubUser:https://github.com/{query}
githubSearch:https://github.com/search?utf8=%E2%9C%93&q={query}
MDN:https://developer.mozilla.org/zh-CN/search?q={query}

参考:

剪贴板历史

有了 Alfred 的剪贴板增强,以上场景都不是问题,首先要在 Features ->; Clipboard 中打开剪贴板历史:

这里我把它们都设置为存储三个月,同时把打开剪贴板的默认快捷键为 Ctrl + Shift + C

Mac 配置教程

通过 Command + 数字键,就可以把它粘贴出来

文本片段

有一些文本是需要反复输入的,比如你的邮箱、QQ号、地址、手机号码、某个网址等信息,亦或者聊天常用语句、表情等等,这些都可以通过 Alfred 来管理,节省输入时间。打开 Features ->; Snippets:

https://www.alfredapp.com/extras/snippets/

字典设置

输入dc开头,然后输入查询的单词;

Mac 配置教程

workflow

个人推荐的workflow:

我常用的存储在这儿了:my-config-files/alfred-work-flow

下载源:

自定义终端

on alfred_script(q)
    tell application "iTerm"
        set _length to count window
    if _length = 0 then
        create window with default profile
    end if
    set aa to (get miniaturized of current window)
    if aa then
        set miniaturized of current window to false
    end if
    set bb to (get visible of current window)
    if bb is false then
        set visible of current window to true
    end if
    set cc to frontmost
    if cc is false then
        activate
    end if
        (*if _length = 0 then*)
            set theResult to current tab of current window
        (*else
            set theResult to (create tab with default profile) of current window
        end if*)
        write session of theResult text q
end tell
end alfred_script

Alfred使用参考:

Beyond Compare

Beyond Compare:完美的diff工具;

Charles

Dash

Dash:计算机语言文档神器;

  • 选中文本搜索开发文档:alt/option+s

ForkLift 3

Mac 上的 Finder 的增强版本,FTP 工具,官网有视频介绍,强烈安利!

go2shell

从官网下载安装,然后打开,同意安装到Finder。

Git

我的 Git 配置文件在:my-config-files/git

FAQ

Q1: git status乱码 执行:git config --global core.quotepath false 参考:Git Status 中文乱码解决

Q2:Github 下载速度慢

Homebrew & Cask & launchrocket

Homebrew-官网安装 brew 命令:

/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

Homebrew cask可以优雅、简单、快速的安装和管理 OS X 图形界面程序,比如 Google Chrome 和 Dropbox,安装 cask 命令:

brew tap caskroom/cask

常用命令:

brew search xxx // 搜索
brew cask search xxx // 搜索
brew list --versions // 查看安装过的包列表,同时显示版本号
brew update // 更新 brew
brew upgrade <package_name> // 更新用brew安装的软件
brew cleanup // 清理旧版本的包缓存时,清除安装包
brew cask cleanup // 清除安装包
brew doctor // 检测
brew outdated // 看一下哪些软件可以升级
brew info xxx // 查看某个软件信息
brew cask info xxx // 查看某个软件信息
brew unlink vim

更多命令可以通过man brew查看:

Homebrew 能够安装哪些软件:

测试安装是否成功:

brew install wget
brew cask install google-chrome
brew cask install cakebrew # brew
brew cask install launchrocket # 管理 brew 安装的 service 的工具,安装之后可以看所有的 service 的运行状态
  • brew 方式安装的软件都在/usr/local/Cellar目录下,执行brew link xxx,则会在/usr/local/share创建软连接。
  • brew cask 方式安装的软件在/usr/local/Caskroom目录下

Homebrew已成为Mac开发用户必不可少的工具, 大部分开发工具的安装和环境构建都非常方便. 但是如果配合Cakebrew和[LaunchRocket]((https://github.com/jimbojsb/launchrocket), 那将会更方便管理。

brew和brew cask有什么区别?cask 更偏向图形化软件的安装。

拓展预览程序

brew cask install qlcolorcode qlstephen qlmarkdown quicklook-json qlimagesize webpquicklook qlvideo provisionql quicklookapk

Homebrew 源加速

知乎上给出了两种方式,因为有 VPS了,所以,目前我采用的是设置 ~/.curlrc 文件配置如下内容:

socks5 = "127.0.0.1:1086"

具体配置文件,可以查看:my-config-files-homebrew

参考:

iTerm2

  • 快捷键打开ITerm2:打开设置,keys-hotkey-show/hide window,我设置快捷键为command+~

  • 切分屏幕:command+d 水平切分,command+Shift+d垂直切分;Command + [Command + ] 来切换到左侧或者右侧的标签页。

  • 一个标签页中开的窗口太多,有时候会找不到当前的鼠标,command+/找到它。

  • command+;弹出自动补齐窗口,列出曾经使用过的命令

  • command+Shift+h弹出历史粘贴记录窗口,command+Shift+;弹出历史命令记录窗口。

  • command+d,新建垂直标签,利用 command+[/] 左右切换标签窗口。

    ctrl + w —往回删除一个单词,光标放在最末尾 ctrl + k —往前删除到末尾,光标放在最前面(可以使用ctrl+a) ctrl + u 删除光标以前的字符 ctrl + k 删除光标以后的字符 ctrl + a 移动光标至的字符头 ctrl + e 移动光标至的字符尾 ctrl + l 清屏

iTerm2 中选择文本有三种方式,分别是:

  • 双击:选中单词
  • 三击:选中整行

参考:

皮肤+字体

字体安装:

pip install powerline-status

这套皮肤+字体的设置主要是为了配合zsh终端下的现实效果,zsh的使用配置,见文章:

最后效果如下图:

Mac 配置教程

皮肤安装教程见:

FAQ

Q1: iterm 本地终端中文不乱码,ssh远程中文乱码

  • [iterm 配置utf8编码,本地终端中文不乱码,ssh远程中文乱码,咋整啊](iterm 配置utf8编码,本地终端中文不乱码,ssh远程中文乱码,咋整啊)

Medis

https://github.com/luin/medis

redis 数据库客户端

MySQL

  • sequelpro mysql 客户端,颜值高。免费

Node

  • Node官网:下载LTS版本

    sudo npm install -g hexo # 博客所需 sudo npm install gitbook-cli -g # 笔记所需

Mosh

Mosh 表示移动 Shell(Mobile Shell),是一个用于从客户端跨互联网连接远程服务器的命令行工具。它能用于 SSH 连接,但是比 Secure Shell 功能更多。它是一个类似于 SSH 而带有更多功能的应用。程序最初由Keith Winstein 编写,用于类 Unix 的操作系统中,发布于 GNU GPL V3 协议下。

Mosh 最大的特点是基于UDP方式传输,支持在服务端创建一个临时的Key供客户端一次性连接,退出后失效;也支持通过SSH的配置进行认证,但数据传输本身还是自身的 UDP 方式。

Mosh 有两个非常有用的功能

  • 会话的中断不会导致当前正在前端执行的命令中断,相当于你所有的操作都是在 screen 命令中一样在后台执行。
  • 会话在中断过后,不会立刻退出,而是启用一个计时器,当网络恢复后会自动重新连接,同时会延续之前的会话,不会重新开启一个。

Mosh 替换 SSH 链接,需要你本机和远端 host 都安装 mosh 才OK:

brew install mosh # mac
yum install mosh # centos
apt-get install mosh # ubuntu

PS:我用这款工具的主要原因是,在家里我的 Mac 连接虚拟机的速度非常慢,ssh 到虚拟机执行命令非常卡顿,使用 mosh 之后流畅了许多。

Python3安装

安装之后记得重启终端。

Postman

Pycharm

SourceTree

源码管理:SourceTree

typora

Markdown 编辑器: typora官网

安装 macvim 和 vim

brew install macvim

Homebrew formulas index-macvim已经明确指出,这么安装和brew install vimvim冲突,所有某些博客文章中安装macvim的指导说需要先安装vim的说法是有问题的,我那么执行时就报错了:

This formula is in conflict with the following

错误提示:

Updating Homebrew...
Error: Cannot install macvim because conflicting formulae are installed.
  vim: because vim and macvim both install vi* binaries

Please `brew unlink vim` before continuing.

我先执行了brew install vim,然后通过brew unlink vim去除了/usr/local/share/创建的 vim 相关的软连接,避免和macvim冲突。然后又通过brew install macvim安装了macvim

如果你想采用macvim代替vim,需要:

brew unlink vim
brew link macvim
alias vim='mvim -v' # 加入 zsh 配置文件

如果你想采用 brew 安装的 vim,替换系统默认的:

brew unlink mackvim
brew link vim
export PATH="/usr/local/Cellar/vim/8.1.0550/bin:$PATH" # 加入 zsh 配置文件

安装之后,还有一些兼容性的设置需要设置才行:

vmap <C-c> "+y " 在Visual模式时,按Ctrl+c复制选择的内容
set backspace=2 " http://cenalulu.github.io/linux/why-my-backspace-not-work-in-vim/
set clipboard+=unnamed " 共享剪贴板 http://www.vitah.net/posts/9ddf2fa9/

关于 Vim 的配置及使用,可以阅读:Vim 插键及配置

参考:

zsh

真是不得不介绍的神器,专门写了一篇文章:

VScode

在 VS code 中快捷键 Shift + Command + p 输入 code ,选择安装 code 命令:

Mac 配置教程

然后就可以在终端中这么打开 VS Code了 :

code .vimrc

Mac 相关好文

最后

原文链接:Mac 配置总结

点赞
收藏
评论区
推荐文章
blmius blmius
2年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
Easter79 Easter79
2年前
swap空间的增减方法
(1)增大swap空间去激活swap交换区:swapoff v /dev/vg00/lvswap扩展交换lv:lvextend L 10G /dev/vg00/lvswap重新生成swap交换区:mkswap /dev/vg00/lvswap激活新生成的交换区:swapon v /dev/vg00/lvswap
Jacquelyn38 Jacquelyn38
2年前
2020年前端实用代码段,为你的工作保驾护航
有空的时候,自己总结了几个代码段,在开发中也经常使用,谢谢。1、使用解构获取json数据let jsonData  id: 1,status: "OK",data: 'a', 'b';let  id, status, data: number   jsonData;console.log(id, status, number )
皕杰报表之UUID
​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为
Wesley13 Wesley13
2年前
Java获得今日零时零分零秒的时间(Date型)
publicDatezeroTime()throwsParseException{    DatetimenewDate();    SimpleDateFormatsimpnewSimpleDateFormat("yyyyMMdd00:00:00");    SimpleDateFormatsimp2newS
Stella981 Stella981
2年前
KVM调整cpu和内存
一.修改kvm虚拟机的配置1、virsheditcentos7找到“memory”和“vcpu”标签,将<namecentos7</name<uuid2220a6d1a36a4fbb8523e078b3dfe795</uuid
Wesley13 Wesley13
2年前
mysql设置时区
mysql设置时区mysql\_query("SETtime\_zone'8:00'")ordie('时区设置失败,请联系管理员!');中国在东8区所以加8方法二:selectcount(user\_id)asdevice,CONVERT\_TZ(FROM\_UNIXTIME(reg\_time),'08:00','0
Wesley13 Wesley13
2年前
00:Java简单了解
浅谈Java之概述Java是SUN(StanfordUniversityNetwork),斯坦福大学网络公司)1995年推出的一门高级编程语言。Java是一种面向Internet的编程语言。随着Java技术在web方面的不断成熟,已经成为Web应用程序的首选开发语言。Java是简单易学,完全面向对象,安全可靠,与平台无关的编程语言。
Stella981 Stella981
2年前
Django中Admin中的一些参数配置
设置在列表中显示的字段,id为django模型默认的主键list_display('id','name','sex','profession','email','qq','phone','status','create_time')设置在列表可编辑字段list_editable
Wesley13 Wesley13
2年前
MySQL部分从库上面因为大量的临时表tmp_table造成慢查询
背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_
Python进阶者 Python进阶者
3个月前
Excel中这日期老是出来00:00:00,怎么用Pandas把这个去除
大家好,我是皮皮。一、前言前几天在Python白银交流群【上海新年人】问了一个Pandas数据筛选的问题。问题如下:这日期老是出来00:00:00,怎么把这个去除。二、实现过程后来【论草莓如何成为冻干莓】给了一个思路和代码如下:pd.toexcel之前把这