出品:西瓜视频前端技术团队
作者:欧阳奕明
在日常开发中,有时会发现一些同学由于缺乏对效率工具的运用,导致研发效率受到一些影响,比如:
- 没有剪贴板历史。一次只能复制粘贴一项,而且有的时候不少需要频繁操作的数据大概率在最近几天都有复制过,如果能利用好剪贴板历史的话,每次都至少需要一两分钟才能找到的数据,可能两秒钟就找到了。
- 每次在终端执行 shell 脚本时都要重新输入,而且由于 bash 中不支持语法高亮、自动填充以及输入建议,效率非常低,看起来就好像是在用文本编辑器进行开发。
- 虽然 VSCode 非常强大,但是并没有充分利用好它内置的代码辅助以及插件能力,在编码、重构或者阅读源码时的效率都有待提升。
基于这样的背景,这篇文章会跟大家介绍一些可以提升研发效率的小工具和小技巧。其中有不少是我一直在用的,还有一些是觉得比较有意思的,希望可以对大家的研发效率带来一些提升。
Launcher
Launcher 是启动器,可以让我们在一个通过快捷键唤起的浮窗上进行大量操作,比如快速打开某个系统应用、直接打开浏览器进行搜索、查找本地文件、预设文本、剪贴板历史、生成二维码、OCR 识别等等,功能很多就不一一列举了,下面介绍几个这类应用。
Alfred
推荐指数:⭐️ ⭐️ ⭐️ ⭐️ ⭐️
推荐理由:强推!老牌效率工具,免费版就已经很好用了,还可以花钱买 Powerpack 自己扩展操作。
Launch Applications
从慢吞吞的找应用图标 => 直接通过名字找到应用启动。
Clipboard History
包含两部分能力:
- 剪贴板历史:一旦复制过的文本、图片、文字等都可以保留好几天,这段时间内都可以通过关键字找到这些文件进行粘贴,非常好用的功能。
- 预设文本:可以配置一些常用的文本,通过关键字进行粘贴。家庭电脑的话可以预设一些家庭住址、身份证号、银行卡号之类的,很方便;工作电脑看场景,可能会有一些需要频繁输入的固定话术。
Workflow
扩展能力,需要购买 Powerpack 才能使用,而且还支持自定义扩展,一键使用。列举一些常用的:
- 翻译
- md5、base64、encodeURIComponent、decodeURIComponent
- IP 地址、时间戳转换、图片下载、压缩
- kill,杀掉不响应的应用
Raycast
推荐指数:⭐️ ⭐️ ⭐️ ⭐️
推荐理由:后起之秀,我用的也不多。不过简单了解下来有几个优势:
- 扩展能力免费,不像 Alfred 需要收费
- 插件集成做的比较好,直接在 Launcher 内就可以搜索、添加新插件,比 Alfred 强
- 颜值高
Utools
推荐指数:⭐️ ⭐️ ⭐️ ⭐️
推荐理由:国内出品的,我用的还不多。不过简单了解下来有几个优势:
- 本地化不错,像 OCR、跟微信的联通之类的,比上面两个更有优势
- 插件资源不受网络因素影响,而上面两个都是国外产品,难免有一些网络影响
Shell
应该大家在工作期间或多活动都会需要使用到一些 shell 命令,然而系统自带的 bash 功能非常简单,体验也不好。当然替代品里还有 zsh,不过这里主要介绍我用的比较多的 fish。
fish
推荐指数:⭐️ ⭐️ ⭐️ ⭐️ ⭐️
推荐理由:历史记录、语法高亮、输入提示、自动填充都非常有帮助,而且还能自定义 Functions,不需要再记那些冗长的命令了!
Syntax highlighting
Autosuggestions
Tab Completions
Functions
自定义 Function 也是非常常用的功能,比如经常需要基于 adb 进行一些操作:
// 为移动端配置代理到 lightproxy
function adb-lightproxy
if count $argv >/dev/null
adb -s $argv[1] shell settings put global http_proxy (ip):12888
else
adb shell settings put global http_proxy (ip):12888
end
end
function adb-remove-proxy
if count $argv >/dev/null
adb -s $argv[1] shell settings put global http_proxy :0
else
adb shell settings put global http_proxy :0
end
end
Terminal
终端,可以用来执行 shell 或其他指令,Mac 虽然自带了一个 Terminal,但确实比较鸡肋。
iTerm2
推荐指数:⭐️ ⭐️ ⭐️ ⭐️ ⭐️
推荐理由:相比于系统自带的 Terminal 颜值更高,功能更加完善,也更适合研发使用。
Split Panes
Divide a tab up into multiple panes, each one showing a different session. You can slice vertically and horizontally and create any number of panes in any imaginable arrangement.
Hotkey Window
可以使用快捷键快速在当前屏幕唤起命令行窗口,而且由于支持透明度,也不需要担心会遮挡其他应用,下面是我通过 control
+space
唤起的命令行窗口:
Warp
推荐指数:⭐️ ⭐️ ⭐️
推荐理由:用的不多,但内置了不少常用的指令,可以用来快速输入;而且可以通过(英文)描述想要做的事情让 AI 输出指令,好像很有用的样子?
Workflows
A.I. Command Search
下面就是我尝试验证的 AI 命令搜索的功能,描述的需求是
prepend "new-" to the names of all txt files
输出的结果也没什么问题:
for i in *.txt; do mv "$i" "new-$i"; done
不过有的时候给出的建议还是不太行,正如现在不少 AI 辅助软件一样,所以保持谨慎观望态度。
Chrome Extensions
Chrome 可以说是大家最常用的浏览器了,下面推荐一些我觉得很有用的插件。
QuicKey
推荐指数:⭐️ ⭐️ ⭐️ ⭐️ ⭐️
推荐理由:VSCode 里可以通过关键字搜索,并在窗口间进行切换,而 Chrome 为什么不行呢?那是因为没有用这个插件!这下 Tab 开的再多也不怕了!而且这个插件支持通过中文进行搜索,非常好用!
Auto Tab Discard
推荐指数:⭐️ ⭐️ ⭐️ ⭐️ ⭐️
推荐理由:Tab 开的太多,长时间不用占用系统资源拖慢电脑速度怎么办?Auto Tab Discard 可以帮你解决这个问题,和 QuicKey 简直是绝配!有了这两个插件之后,Tab 至少都是 3 位数的。
官方介绍:Increase browser speed and reduce memory load when you have numerous open tabs.
Auto Tab Discard is a lightweight browser addition that automatically reduces the memory load of open-but inactive tabs. This also helps portable devices to save battery.
Rearrange Tabs
推荐指数:⭐️ ⭐️ ⭐️
推荐理由:顾名思义,调整 Tab 顺序的,不过效率提升有限,强迫症患者 + 快捷键爱好者可能会喜欢。
官方介绍:Allows users to rearrange tabs using keyboard shortcuts.
VSCode
Extensions
Github Copilot
推荐指数:⭐️ ⭐️ ⭐️ ⭐️ ⭐️
推荐理由:AI 辅助编程,用过的都说好,就是一年一百刀有点小贵。
Turbo Console Log
推荐指数:⭐️ ⭐️ ⭐️ ⭐️
推荐理由:调试期间经常需要打 log?这个插件可以快速为当前聚焦的变量生成一行 log 代码
官方介绍:This extension make debugging much easier by automating the operation of writing meaningful log message.
const userInfo = xxx;
// 快捷键自动生成
console.log("🚀 ~ file: user.ts ~ line 51 ~ UserService ~ setUser ~ userInfo", userInfo)
Command
推荐指数:⭐️ ⭐️ ⭐️ ⭐️ ⭐️
推荐理由:下面介绍一些常用命令,虽然都是各个 IDE 中的内置命令,对于研发提效非常有用,但是据我观察不少同学其实用的还不多。另外,由于是需要高频使用的功能,建议配合快捷键使用。
Go to Type Definition
跳转类型定义,和 Go to Definition 比较类似,看代码的时候很有用。
Go to Definition
跳转到定义,和 Go to Type Definition 比较类似,但是跳到变量定义,看代码的时候很有用。
Go to References
查找引用,重构代码或者排查问题的时候很有用。
Go Back/Go Forward
这两个是我认为非常非常有用,但是知道的人相对更少的功能。当我们跳转到定义或者跳转到引用之后,如果想要返回原处应该怎么办呢,使用 Go Back。同时与浏览器访问历史类似,也可以通过 Go Forward 再回到刚刚的位置。在重构代码、排查问题的时候都超级有用,建议配合快捷键使用。
Go To File
可能有不少同学还是习惯在 Explorer 面板去根据文件目录找文件,但是在我看来通过文件名查找文件的效率会高不少。
Rename Symbol
(变量、函数)重命名,知道的人应该不少,就简单提一下,重构的时候还挺好用的。
Misc
Keyboard
推荐指数:⭐️ ⭐️ ⭐️ ⭐️ ⭐️
推荐理由:长按方向键,移动光标的时候会觉得慢吗?那可能是因为你下面两个配置没有改。系好安全带,改完之后立刻起飞!
Conclusion
虽然这篇文章介绍了不少我认为非常有用的工具和技巧,使用之后大概率会提升研发效率,但是仍然有两点需要再补充一下。
首先,这里列举的只是依我个人的使用习惯更加高效的工具,未必对所有人都适用,大家还是需要在自己的工作过程中有意识的去识别效率卡点,并针对性的挑选合适的工具进行优化,长此以往势必会对研发效率带来可见的提升。
其次,虽说“工欲善其事必先利其器”,但我认为这里的“器”应该不是狭义上的工具,也应该包括编码能力、学习能力、设计能力、分析和解决问题的能力等等广义上的“器”,而这些“器”的提升才会为研发效率带来质的帮助,因此也不需要在效率工具上投入过多精力。
关于我们
我们来自字节跳动,是旗下西瓜视频前端部门,负责西瓜视频的产品研发工作。
我们致力于分享产品内的业务实践,为业界提供经验价值。包括但不限于营销搭建、互动玩法、工程能力、稳定性、Nodejs、中后台等方向。
欢迎关注我们的公众号:xiguafe,阅读更多精品文章。
我们在招的岗位:job.toutiao.com/s/h2BU5d8。招…
欢迎大家加入我们,一起做有挑战的事情!
谢谢你的阅读,希望能对你有所帮助,欢迎关注、点赞~