上一篇文章从应用(application)的选择上推荐了一些我常用的应用或工具,这篇主要从配置(config)和思路、原则上提高工作效率。总而言之,我们的目的只有一个,帮助尽快完成工作,能不加班就不加班,最好是永不加班(滑稽脸)。
本文将重点关注数据上,这里的数据是广义的,如提醒事项、笔记、备忘录、服务器ip地址、shell命令,这些在本文中都定义为数据。
当然,本文所有的内容仅是个人观点和经验之谈,所以如果和各位读者的看法有冲突也是难以避免的,选择适合你自己的即可。觉得还有点儿用,可以点个“在看”支持一下!
文章内容大体如下,总体阅读时长在15~20min左右,各位可以选择跳章节查看:
- 第一章:配置Shell(偏硬核,适合于开发者)
- 第二章:文件归类
- 第三章:数据分类
- 第四章:有关RSS订阅
- 第五章:谨慎使用推送
良好的shell环境是第一步
我相信没有任何一个程序员使用 MacBook 而不用其上的任何 shell ,日常我会使用 shell 启动测试服务、查找&编辑文件、查看ip、ping、traceroute、ssh登录服务器…. 。
如果你看了上一篇文章,你现在肯定已经安装好了 iTerm2 。而这里主要介绍如何配置一个良好的shell环境,配合上 iTerm2 会更加强大。
“oh my zsh” first
zsh 是 shell 的一种,而oh my zsh是为了简化 zsh 配置而产生的,安装了 zsh 之后,你将拥有:
- 友好的颜色辅助提示。
- 更加友好的历史命令搜索。
- 更加智能的自动命令补全。
总之,上述的功能让我在以下的场景更舒坦了:
(1)输入了若干命令之后,突然想用很早的一条命令,现在只需要输入关键字然后按方向“上”键即可按关键字搜索命令。以前要一直按方向“上”键才能找到。
(2)突然想看下该目录下的 git 分支状态,此时直接展示在 shell 上的,以前还得输入命令。
使用命令结合 tab 键有意想不到的方便,比如前端常用的 npm run *** ,此时键入 npm run + tab键,即可查看有哪些 npm 命令可用。以前需要查看package.json
。
总之,oh my zsh 是方便使用 shell 的第一步也是最重要的第一步,具体的安装方法这里不提供,度娘上一搜就是一大堆文章。对了,需要注意的是:请设置 zsh 为默认启动项,不然每次启动shell会默认启动bash。
配置方便配置的配置
配置 shell 常用的 alias 我认为才是真正的灵魂所在,alias 就是命令的“别名”。举个例子:如果我配置 alias showip="ifconfig |grep "inet ""
,那么以后我只要输入showip
就可以查看我的inet ip
(理解为局域网ip)。每次输入 alias 的时候都回想起了小时候玩“星际争霸”输入秘籍的感觉。“black sheep wall”
这样的场景就是和某开发在同一局域网下,然后服务需要在局域网调试时,方便把局域网ip提供给对方的时候。
我一般会将所有的 alias 配置写入 ~/.bash_profile
中,因为它会在运行 bash 时生效。如果已经配置了 zsh ,请将配置写入 ~/.zshrc
中。
首先,一定要做到添加/查看/生效配置方便。所以我先添加了如下两条配置:
-
alias showconfig="vim ~/.bash_profile"
直接打开配置文件 -
alias fresh="source ~/.bash_profile"
生效配置文件
这样做让我能够很快的对配置进行添加/查看/生效,降低了使用成本,这就叫做配置方便配置的配置。
快捷进入常用文件夹
我们总会有几个文件夹需要经常进入,如桌面、项目文件夹、文档文件夹等。而每次在 shell 里一步一步的“cd”进去太麻烦了。直接配置 alias 会方便很多。拿我自己举例子:
我有如上几个目录常用:
- work 是我的工作目录,我日常开发的项目会放在这里面
- doc 目录我用于存放项目相关的文档等
- lab 目录主要用于对一些开源库进行测试和玩耍
- fun 目录就是自己写着玩的一些小东西
- Project 目录为了归档已经开发结束的项目,文件大都来源自 work 目录。
为了方便进入这些文件夹,我会直接配置:在 shell 键入关键字就是进入相应文件夹。如键入work
就是进入 work 目录。当然还可以配置方便进入桌面目录和个人用户顶级目录等。怎么方便怎么来。效果图如下:
快速进入服务器
每次都感觉输入ssh root@***.***.***.***
都特麻烦,一是 ip 地址不好记忆(可以用host解决,后面会讲),而是键入“@”还是比较麻烦的,想偷懒的话可以配置快速进入服务器的alias。
如:有一台你的服务器的公网ip为47.96.112.33
,这个时候可以配置如下:
alias login1="ssh [email protected]"
(这里仅以root用户举例)。
这样就可以键入login1
就进入服务器了。如图所示:
配置host
记不住 ip,但是又需要经常 scp 文件到服务器怎么办?
那就配置 host 吧。简单来说,host 就是你主机上的 ip -> 域名的一个映射表。一个最基础的就是127.0.0.1 localhost
。所以我们可以在浏览器输入localhost
而访问本机。
这里推荐一个小工具:iHost (可直接在 app store 下载)。他提供编辑 host 文件和按环境切换 host 的功能,还算比较方便。
文件都要有好的归属
这一章主要讲一些关于文件分类的思路,这样做的目的是为了更好地检索自己的文件,如果杂乱地放到后期根本找不到好吗!
桌面一定要干净
敲黑板!重点!这条原则如果你遵守了,你会感觉你的电脑“干净”了很多,也有继续“做清洁”的动力了。这是我的桌面:
是不是很干净!是不是看着就像工作!(第二条不存在的)
Finder 左侧栏放常用文件夹
我会在 Finder 的左侧栏放我最常用的文件夹,如下图:
其中很多文件夹都在上一章讲过了,到目前为止,我可以在可视化界面和Shell中进入我最常用的文件夹了。这里我要重点讲讲“RAM”文件夹和“ROM”文件夹。
RAM 是随机存取存储器(英语:Random Access Memory,缩写:RAM),也叫主存,电源关闭后不会保留数据。
ROM 是只读存储器(Read-Only Memory)的简称,是一种只能读出事先所存数据的固态半导体存储器。其特性是一旦储存资料就无法再将之改变或删除。
很多时候,我们会在某一项工作内容使用大量文件,然后我们习惯性地会放到桌面(Desktop)上,然后可能会并行做第二项工作,这时可能就有大量文件堆积在桌面上影响工作心情和检索速度。而这样又和“保持桌面干净”的原则冲突了,这时候RAM文件夹就像桌面的第二抽屉。所有的当前工作所需文件都会放在该文件夹里,而桌面上只保留即用即删的文件即可。
而在工作完成之后,一定要把RAM文件夹清空或归档到ROM里。这样做的目的是为了让下个工作事项进来的时候不会和老文件混在一块。取名叫RAM因为它有着很真正的RAM相似的特性:这里是工作完成后里面的数据被清除。(删文件的时候还挺有快感的)
解释了RAM,ROM就简单了,这个文件夹就放那些归档过来的文件和自己的重要数据文件。有点类似真正的ROM。
总的来说,“RAM&ROM文件夹方案”就是为了做到“动静分离”。
经常备份是好习惯
建议各位购买一个1TB+的移动硬盘,作为 Time Machine 使用的备份硬盘,同时存储不会经常打开的照片、视频、壁纸、网课等。虽然备份在通常情况都用不到,但是却能防范一些伤害重大的特殊情况:电脑被偷、主机被烧、主机被摔坏等。不知不觉自己的电脑已经备份了两年了。
iCloud 和 oneDrive
对于一些需要跨端使用的文件,请放入 iCloud 或者 oneDrive 里(看具体使用情况而定)。
作为 MWEB 的忠实拥护者,我经常会在 iPad 上编写笔记,所以我就会把 MWEB 的文件库放入iCloud中,这样我就能同时在 iPhone、iPad、MacBook 上访问我的笔记,随处编写,一改全改。
当然,我也会使用到 Word 、Excel、PowerPoint 等,所以我会将上述文件存在 iCloud 或者 oneDrive 上,方便我随时随地对自己的文档进行修改。
需要注意的是,iCloud 和 oneDrive 的免费空间都是 5GB,节约一点地使用应该足够,如果不够的话可以选择购买,iCloud 我购买 50GB 空间的价格是 6¥/月,略贵。
自己产生的数据请做好分类
使用电脑会产生大量的数据,我希望能够对自己产生的数据最大程度上做到分类和规划。
一件持续时间很长但低频的事情用“备忘录”
对于某些事情,我可能需要做长时间的准备和处理,同时还可能添加删除数据。我觉得最好的方案是在备忘录里新建一个文件用于记录。
如旅游计划、毕业所需工作、租房计划等,这些都需要较长时间的准备,且用完即归档的。所以放入TODO事项和笔记里都不太合适。备忘录就是最好的归宿了。
比如毕设答辩准备:
这样逐步收集文件,记录该工作所需的TODO项会让一切的一目了然,也方便自己做更好地计划。
当天必须完成的事情用“提醒事项”或者滴答
我的“提醒事项”里的设计比较简单。一个 Today ,表示今天必须完成的事情,所以每天我的任务就是清空它。第二个就是Todo,这代表我未来需要做的事情。所以经常的操作就是把 Todo 里的任务拖进 Today 里,这样既能 focus 当下需要做的任务,又可以积累规划未来需要做的事情。
需要注意的是 描述任务一定要描述得非常具体,不然之后会忘记这件事情到底是什么事。比如:“开发XX系统”、“写XX作业”这样的任务描述就非常不好。第一这些任务可能不是一天能完成的,第二,你可能忘记具体的任务。最佳实践如下:“完成XX系统XX模块的XX功能”,“把袜子洗了晾好”,“下午3点去老四川吃鱼香肉丝”。
有两个很棒的功能点要分享给大家:
(1)MacOS的提醒事项和日历的快捷输入框有时间关键字模糊匹配功能,例:输入“下午3点打印照片”然后按回车键,则会建立一个推送提醒在下午三点,文案写着“打印照片”。
(2)日历应用可以预设默认的推送提醒。如图所示:
通过设置 “日程:15分钟前”。那么在日历的快速输入栏输入任务,就可以默认日程发生前15分钟发送推送提醒。否则就需要自己每次手动设置,太麻烦了。这样可以对这日历在快速输入栏里迅速规划好当月、当日、当年要做的重要事情,且还带上推送提醒。
信息收集类用“滴答清单”
对于书单、电影、电视剧或者某一类可归类的事务,我会用到“滴答清单”。因为我可以用它来积累我喜欢的事物,比如想去旅游的地方,想买的东西、想看的电影电视剧或者想读的书,而且每完成一项都有一定的成就感。同时,我还能再“滴答清单”里对事物进行更详细的描述。
图为“好看的电影清单”。
同时“滴答清单”也提供了“提醒事项”全部的功能,目前我也正在从原来的“提醒事项”迁移至“滴答清单”。因为我发现滴答清单的功能更齐全同时也具有跨端使用的能力。
通过快捷键也能设置提醒,比“提醒事项”更方便。
写日记用dayOne
一些私密或者一些日常的流水账我喜欢用DayOne,如果想要跨端使用,就必须购买它了,还挺贵的。如果只在电脑上使用,那么完全可以不购买。
我会用它记录我的一些比较私人的心得体会同时设置密码,手机端支持指纹解锁。dayOne 给我的写作反馈是最良好的,良好的UI设计和交互设计,同时还能添加图片、地点等信息,用于记录生活真的很不错。(好像这里有点偏题了)
写笔记、推文、总结用mweb
我日常用于记录笔记、写技术博客、写推文、会议记录都是用的MWEB,在上一篇文章里也有该app的相关介绍,这里我就不多赘述了,主要考虑以下几个优点让我最终选择它:
- 跨端写作的能力,一处修改,处处修改。
- 集成了发布的能力,能一键发布至我的博客网站。
- 对 markdown 语法支持太好了。
- 对图片的管理也很棒,支持图床或本地图片。
另外,用 mweb 来记录 todo 项是错误的,因为我会忘了打开看而起不到提醒的作用。用来记录一些持续时间长的事物但是用处又不大的事物也很多余(这里用备忘录来代替),感觉会污染笔记质量。
下图为我的 mweb 使用情况,积累了快两年的笔记。
RSS只订阅自己关注的
相对于基于推荐算法的内容推送,我更喜欢基于订阅的 feed 流。(RSS订阅的过程中会用到的“Feed”,便是表示这是用来接收该信息来源更新的接口)
但是经过我这两三个月的体验踩坑,我发现RSS必须只订阅自己喜欢的,就像买东西一样,订阅RSS源的时候也一定要再三考虑,否则就会出现“信息吃灰”和“信息杂乱”的情况。所以原则就是:
RSS只订阅自己关注的,别跟风,别高估自己的阅读速度和消化信息的能力。
我会使用Reeder+RSSHub来阅读 RSS 信息源,比如我喜欢看B站up主“木鱼水心”和“testv”的视频,所以我会先在 RSSHub 上制作一个rss订阅源,再在Reeder(一个RSS阅读器)上订阅该rss源,根据喜爱程度,我还会给“木鱼水心”接入一个IFTTT,这样我就能在他视频发布的时候在我的 apple watch 上给“最强推送”。
下图是我的Reeder:
谨慎使用推送
最后,我们给信息做个减法。手机推送一定要好好管控,不然你会感觉十分被打扰。我用的是如下的原则(不仅适用于 MacBook):
- 所有app安装完成之后关闭它的所有推送功能。
- 开启你觉得需要的推送,按如下来分级:
- 需要即时性:开启所有提醒(铃声+震动+亮屏)。
- 仅仅需要阅读一下:开启亮屏。
- 一目扫过:什么提醒都不开,仅仅展示文案,解锁屏幕才可见。
针对微信来说,登录了电脑微信之后,请把手机微信调至静音,不然别人发一条消息两边都提醒是最难受的。当然,有时候登录了电脑微信但是人离开了电脑,此时需要把静音模式关闭,不然别人发消息手机是不会推送的。
我是十分讨厌明明在一个很重要的场景之下却联系不到人的情况。所以各位在身负重任的时候开启一条能让别人立刻能联系到自己的通道。我认为这是最基本的合作礼仪。
写到最后我发现已经偏离了”如何用MacBook提高工作效率“这个题目了。不过我的目的是没变的:
更好更快地工作才能有更多时间享受啊。