想起上海,一丝伤感

缘起:经过一个周末奋战,Hackintosh (黑苹果) 终又满血复活。此次升级经历着实惨痛。

虽啃上 macOS 10.12 Sierra 公测版,终不敌显卡驱动难题,重回旧版。但系统一旦升级,不可降级。索性格式化系统盘重装。回头望去,一路坎坷,还好取得些经验、感悟,遂记录之。

千头万绪,暂且小处着手,慢慢道来,第一篇。

折腾 Windows 时就养成了保留安装包的习惯,以备不时之需。在转移 macOS 后也一直维护自己的软件清单 Mac 学习笔记(四)软件篇(持续更新)/)。但软件各种配置还是过于繁琐,徒徒浪费好多光阴,有没有更好的解决方案?

在配置「Karabiner」键盘键位软件时,想起之前写过 Mac 学习笔记(五)键盘映射,真是救命稻草,复制配置文件,习惯的键位马上回归,舒爽!

又想起 Emacs, Vim 之类软件备份方案,只需维护一份配置文件,包含插件和自定义设置。配置文件一加载,便恢复曾经的模样,实为上策。

借鉴此思想,用 dropbox 同步了一个 myConfig 文件夹,用来保存各软件配置文件,免去配置之苦。

思路定下,开始研究各软件配置文件了。首当其冲是编辑器 Atom,总结了三种备份方案,与大家分享下。

1. apm stars

这是官方插件管理方式,查看 官方说明

首先你需要拥有一个 Github 账户,在 atom.io 看到什么好插件,只需点击 star 收藏。某天,你想一次把收藏插件全部安装,只需执行命令:

1
apm install stars # 会提示你输入自己的 token

按照提示一步一步来就可以。更多操作执行 apm stars --help 查看。

优点:官方支持,操作简单,云同步。
缺点:自定性差,必须安装全部插件;仅同步插件,不能同步设置。

2. 自定义插件单

我查了下自己的收藏单,原来我收藏这么多不错插件,包括很多 Ruby 开发相关插件,但这段时间又用不到。全部安装,指定影响速度,只想装部分插件,又不想一条一条命令输,毕竟咱们是程序员,搬砖也要花式。

设想自己写个 bash 脚本,让安装命令一条条自己执行就好,也可再次使用。如果需要自己把插件一条条复制过来就显得太艰辛了。

写了个小脚本,访问 atom.io 自己的 stars all 界面,在浏览器调试环境下执行,获得脚本需要文本,脚本如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
/*
* Author: bobo
* date: 2016.08.29
* 1. 访问 https://atom.io/users/yourname/stars
* 2. 鼠标右键,审查元素(inspect)
* 3. 点击 Console
* 4. 粘贴代码,回车
*/
var stars = [].slice.call($('.card-name a'), 0),
res = ''
stars.map(star => {
res += `apm install ${star.text}\n`
})
console.log(res)

执行效果如下:
获取安装信息
然后新建 my_atom.sh 文件,给脚本添加可执行权限 chmod +x my_atom.sh,最后执行脚本 ./my_atom.sh

1
2
#!/bin/bash
apm install xxx
优点:自定义安装插件
缺点:需要自己维护及同步,不能同步设置。

3. 利用 Sync-setttings 插件备份

最后,祭出大杀器,请看这里 sync-settings,它利用 gist 云同步插件及配置:

  • Sync Atom’s and package settings
  • Sync installed packages
  • Sync user keymaps
  • Sync user styles
  • Sync user init script
  • Sync snippets
  • Sync user defined text files
  • Manual backup/restore to a gist

使用方法,参考官方说明(注意,安装好插件,需要重启,不然看不到 setting 选项)。

效果非常好,如图:
同步的配置项

优点:完美恢复到备份时的状态
缺点:多装一个插件。

通过这次经验,如不是出于清理电脑目的,整体采用 TimeMachine 备份才是王道。

保存软件配置文件,并同步,又加了道保险,且多台电脑间同步有奇效。