我每周花一个小时来优化我的开发环境。
我对效率的执着——以及我用来驱动这种执着的工具
如果你像我一样是个生产力狂人,你可能会发现自己处于以下情况(大概是在上周):
你有一项任务要完成,你坐下来,打开笔记本电脑,突然,它就来了。
那件烦人的小事,你每次都得做。它可能每小时发生一次,每天一次,甚至每周一次,但它会让你抓狂。
这可能是一些小事,例如插入 MFA 代码、关闭弹出窗口,甚至切换到 Vim 的“正常”模式。
也可能是一些更耗时的事情,例如在重新插上 Mac 后重新排列显示布局、将连接字符串更改为只读生产数据库,或者在更改不影响环境的情况下重新启动环境。
这没关系,关键在于这是你正在做的事情,而不是你宁愿做的事情。
八个月前,我决定停止这种疯狂的行为。我开始每周留出1个小时来摆脱这些小麻烦。
让我们谈谈工具
所以有很多工具可以帮助我实现极致效率的目标。有些是免费的,有些则要花点钱,我甚至花了 50 美元买了一个。你不必非要使用我推荐的那些,我相信每个付费工具你都能找到一个免费的,或者自己创建一个。
BetterTouchTool > $7.5 - $21
BetterTouchTool是我用来定制开发体验的第一个工具,我在开始目前的职位之前就安装了它(我的笔记本电脑是提前收到的),而且我每天都使用它的频率简直令人难以置信。
简而言之,它允许你自定义 Mac 上所有“输入相关”的东西,包括你的 Magic Mouse、触控板、键盘,甚至你的 Touch Bar(如果你使用兼容版本的话)。
Karabiner-Elements >免费 - 开源
Karabiner是我认为每个操作系统都会内置的工具之一。它允许你重新映射键盘上的任意按键,以实现任何你想要的功能。为什么它不是标准配置呢?
Alfred + Powerpack > £23 - £39
Alfred可能是我解决工作流程问题时第一个会用的工具。Alfred(一款免费工具,由付费版“Powerpack”进行了大规模扩展)功能多到无法一一列举,但它本质上就是强化版的 Spotlight。它支持无数自定义功能,并拥有开箱即用的改进功能,让你恨不得早点遇到它。
改变我生活的变化
1. 自定义我的 Touch Bar
如果你有一台带 Touch Bar 的 Macbook Pro,你迟早会想:“该死,这真是个没用上的潜力”。
的确如此,苹果在这方面确实做得不够好。
还好,我用 BetterTouchTool 定制了它,让它变得没那么糟糕了!
如你所见,我把esc
键留在了左上角(我们esc
稍后会讨论这种情况),并且我把一些我经常使用的应用程序的快捷方式放在那里(Finder、超级终端、VS Code)
红色Production
/绿色Development
块表示我的文件的当前状态database.yml
(在基于 Rails 的应用程序中,您的连接字符串保存在那里),这使我能够一眼就知道我是在处理本地数据库还是只读生产数据库。
我还添加了一个显示我当前内部 IP 地址的块(当我想与同事共享本地服务器的链接时很有用)、一个静音按钮、一个带有秒数的 DateTime 块(当想要了解查询性能时很重要)它还可以让我随时查看日历,以及一个锁定我的笔记本电脑的“咖啡休息”按钮。
显然,当播放 Spotify 或 Youtube 时,中间会出现一个带有一些有用功能的块。
我使用的另一个很酷的功能是用 2 根手指拖动来控制亮度,用 3 根手指拖动来控制音量。
2. 将 Caps Lock 替换为ESC
如果你认识我,你可能知道我有点儿键盘癖。我组装键盘,收集键盘,努力做出最符合我风格的键盘。
我在使用的每个系统上都必须做的一件事就是将 Caps Lock 键重新映射到ESC
,尤其是在这台 Mac 上。我的意思是,究竟是谁会更喜欢 § 而不是物理esc
按键呢?
如果你用过 vim,你就会知道把按键放在身边有多重要esc
。随着我越来越频繁地使用 vim,我意识到我除了用 vim 之外,还用它来做其他事情。关闭弹窗、模糊输入、在 Chrome 开发者工具中打开控制台。Esc 键可是按键中的无名英雄。
我使用 Karabiner-Elements 将毫无用处的 Caps Lock 键(都 2019 年了,如果你还在用 Caps Lock,现在该重新学习一下了)重新映射成了esc
。简直再简单不过了。
3. 太空学员轮班
如果您还没有读过Steve Losh 的这篇精彩文章,我强烈建议您读一读,但自从我读过这篇文章以来,我最喜欢(和使用)的定制是“Space Cadet Shift Parentheses”。
如果短暂按下,它会将您的left_shift
键变成一个(
,将您的right_shift
键变成一个;如果按住并与另一个键组合,它会将它们视为正常的 Shift 修饰键。)
shift
这使我能够通过一次击键输入括号,这比传统的+方式更有意义9
,因为我可能每天使用括号数百次。
4.剪贴板历史记录
这真是个颠覆性的功能。我特意用的是 Powerpack 中绑定了 ++ 快捷键的 Alfred 剪贴板cmd
,shift
不过v
你也可以用免费软件“Jumpcut”。
它的作用是保存你复制过的内容的历史记录,包括文本和图片。
最初,我开始使用它来阻止这些“妈的,我复制了剪贴板中那个非常重要的东西,现在我必须回去重新复制它”的时刻,但随着时间的推移,我开始将它用作真正的工具。
我从一个应用程序复制多个项目,然后转到另一个应用程序并根据需要粘贴它们,而无需切换回来。
5. 重新排列显示布局
如果你有一台 Mac 和两台显示器,你可能对这个问题很熟悉。
你断开笔记本电脑去开会,回来后发现屏幕全乱了,空格乱七八糟,你得把窗口从一个显示器拖到另一个显示器上,一拖就是两分钟。
我发现,你可以更改主显示屏三次(前提是按正确的顺序操作),然后显示屏就会回到你想要的位置!
这本身就节省了大量时间,但我想更上一层楼,所以我创建了一个 Alfred 工作流程。
工作流是一组操作,可以是脚本、设置更改、推送通知和大量其他操作,按顺序执行并由 Alfred 中的关键字或键盘快捷键触发。
使用免费的 cli 工具 displayplacer
,我能够在每次“主显示更改”之后记录当前显示状态,并且在我拥有所有 3 个之后,我将它们链接在一起,在由关键字 arr(arrange 的缩写)触发的工作流中。
现在,每次我坐在办公桌前,我都会插上显示器,按⌥
+ space
(我的 Alfred 快捷方式),arr
输入,然后显示器就修好了!
6. 更改我的数据库连接字符串
我们处理的数据量不允许我们将数据拉到本地机器并对其进行处理,因此有时我们必须更改连接字符串(我们的database.yml
文件)以连接到生产数据库的只读副本,以查看数据在新仪表板上的显示方式或其他。
这个过程每天发生大约 6-7 次,每次我都必须database.yml
在编辑器中打开,取消注释/注释生产数据库的行,保存文件并重新启动我的rails server
(我们稍后会解决)
我创建了一个 Alfred 工作流程,它database.yml
根据我输入的命令简单地用正确的工作流程替换我的工作流程,并保存一个文件,说明当前正在使用哪个文件(还记得 Touch Bar 中的红色/绿色块吗?)
7. 自动重启本地服务器
任何开发过 Node.js 的人都知道nodemon
,这是一个很棒的实用程序,它允许你运行 Node 服务器,并在文件更改时重新启动它。
但你知道它nodemon
也可以在任何命令行工具上运行,并监视任何类型的文件吗?
将我的rs
别名(rails server
)更改为
alias rs="nodemon --watch config -e rb,yml --exec \"rails server -b 0.0.0.0 -p 3002\"
允许我运行服务器,每当config
目录中带有rb
或yml
扩展名的文件发生更改时,它都会重新启动服务器!无需再手动重启database.yml
!
8. sudo
TouchID
每次需要输入 Mac 的主密码,我都烦死了。为什么?因为我有 TouchID!为什么我要输入密码,而不是用生物识别技术来验证身份?
我发现可以在sudo
PAM(可插入式身份验证模块)中添加一行简单的代码,从现在起,每次我需要执行sudo
命令时,只需将手指放在传感器上即可!
只需在文件顶部添加以下代码即可/private/etc/pam.d/sudo
:
auth sufficient pam_tid.so
9. 无需手机即可使用 MFA
对于这一点,我将向您推荐这个启发了我的奇妙的工作流程,但简而言之 - 您可以创建一个 Alfred 工作流程,无需打开手机即可粘贴 MFA 代码。
为了保证我的账户安全(毕竟 MFA 是有原因的),我将脚本权限改为“仅限 root”,并以 的身份运行sudo
。
如果你还记得 #8 中的内容,在我的 Mac 上使用 sudo 需要指纹,这样我就可以用指纹来保护我的 MFA 令牌,而不必在 GitHub 每次使我的会话失效时都去拿手机。
10. 启动我的开发环境
我们的开发环境比较复杂,我个人喜欢以特定的方式工作。
我的终端是 Hyper,完全按照我的喜好定制,我把一个标签页分成了三个部分:一个用于docker-compose
,一个用于我们的npm
转译器,还有一个用于rails server
。
除了该选项卡之外,我还有另外两个选项卡,一个用于rails console
,另一个用于git
管理。
每次启动 devenv 时,我不需要打开所有这些选项卡并输入所有这些命令,而是创建了一个由键盘快捷键cmd
+ shift
+触发的 Alfred 工作流b
,它可以为我完成所有这些工作!
荣誉提名
我的所有优化背后都有故事,有些虽然微不足道,但仍然可以节省大量时间
别名
使用 Shell 别名。
每当你遇到需要多次输入的长命令时,就把它放到别名里。你会惊讶于它用得有多频繁。
终端配置
除了别名之外,你的终端还有很多自定义功能。从 shell 自定义(包括fzf
历史记录自动完成)到更好的标签页管理和更好的远程工具(例如mosh
)
。终端是你的朋友,你在上面花费了大量时间。好好对待它吧。
计算器
你可以用 Spotlight / Alfred 来做计算器。不过,这个功能似乎没我想象的那么出名。
使用空格
我知道相比 Windows 的窗口,这个功能可能比较难上手,但说实话,空格键确实是 Mac 上最好的导航方式。花点时间,学习使用空格键,并掌握所有手势。使用空格键比拖动窗口快得多。
触控板三指拖动
您可以用三根手指拖动,而无需在触控板上点击并拖动。启用此手势,您的手指会感谢您!
您可以在“偏好设置”>“辅助功能”>“鼠标和触控板”>“触控板选项...”>“启用拖动”>“三指拖动”中找到它。
我还有很多像这里发布的优化,如果你想让我创建后续帖子,请说🙃
您在电脑前花费了数小时,请确保每一分钟都很重要。
文章来源:https://dev.to/oryanmoshe/i-spend-one-hour-a-week-optimizing-my-development-environment-l9a