程序员真的需要双显示器吗?

我最近思考一个问题,用双显示器编程是否比单显效率高?

如果是的话那么是否显示器越多 效率越高呢?

有些同学肯定会马上回答,那肯定觉得是对的!

一个屏幕用来看文档,一个屏幕用来写代码,肯定会比都挤在一个屏幕效率高呀, 如果桌子够大的话,最好再加一个屏幕专门用来聊微信,那我就不用切换窗口,那效率肯定就爆表了。

但你有没有总结一下,在你编程的时候,具体为什么单显示器会比双显示器比效率低呢?

低效的原因

以下是我总结出的2点原因:

  • 第一点就是切换窗口,因为即使在最新操作系统中,使用单显示器的情况下,无论是用鼠标,command tab ,还是四指上扫调度中心,切换窗口仍然是非常麻烦的一件事 。 但是你如果用多显示器,就可以避免在两个窗口之间切换。两个窗口放在两个显示器里,只要晃头就行了
  • 第二点是,你会有同时显示两个窗口的需求,比如一个文档,一个ide,你需要一边看文档,一边敲代码,这用一个显示器就不太容易做到,而且有时需要调整各个窗口大小,这是非常浪费时间的。

以上两个问题就是导致你效率低下的最重要的问题,如果可以成功解决,那么使用单屏编程就不是个问题了

解决的要点:

  • 不要用调度中心,不要用command + tab 来切换窗口, 把你每个常用的软件都做成超级快捷键,肌肉记忆直接拉起
  • 学会使用窗口管理工具,配合超级快捷键,快速调整窗口,不要尝试用鼠标拉窗口,手不要离开键盘

如何定义超级快捷键

超级快捷键 = Hyper + 任意键

为了设置超级快捷键,第一步就需要定义一个 Hyper 键,也就是超级键

为了让 Hyper 键不与系统或其他软件冲突,通常会把 Shift + Control + Option + command 一起按,也就是⌃ ⌥ ⌘ ⇧ 这4个键一起按作为 Hyper 键

但是键盘上并没有一个实体的 Hyper键,我们又不可能手动按住4个键, 所以我们会用软件把大小写切换键 Capslock 改成 Hyper key

因为大小写切换键,就在小指头的旁边,是键盘上占着最好位置的按键,却是一点用都没有的一个键,改完以后当再按住 Capslock键 的时候,实际上相当于按住了4个按键,也就是按住了 Hyper键

我用到的改键软件是 Karabiner-Element

打开 Karabiner 找到 Complex Modifications 点击 Add predefined rule

点击 import more rules from the internet 这时会打开浏览器,搜索 CapsLock plus 点击 import

这里我只 enable 了两条规则

  • CapsLock to Hyper/Escape
  • Hyper Cursor navigation

当然你可以根据需要 edit -》 save 来修改

修改后的配置文件会保存在下边这个位置

~/.config/karabiner/karabiner.json

这是我最终修改后的配置文件,放在下边这里,你可以去参考

github.com/nshen/dotfi...

至此你的超级键就定义好了。

用超级快捷键切换桌面

用超级快捷键来切换桌面需要到设置中把对应的快捷键定义成 Hyper键 + 对应的键,我这里设置成了 Hyper + [Hyper + ]

具体位置在

设置 -> 键盘 -> 键盘快捷键 - 调度中心 - 调度中心 - 向左/向右移动一个空间

用超级快捷键启动应用

首先安装 Raycast,因为Raycast是目前最优秀的应用启动器,并且可以给每个应用定义快捷键,所以我们用 Raycast 来给每个常用的应用都加上超级快捷键。

打开后 command + k

打开菜单选择配置

在这里给应用设置快捷键为 Hyper + 任意键

以下是我常用的软件设置

用超级快捷键管理窗口

Raycast 本身就提供了窗口管理功能,非常好用

我们可以用和应用一样的方法,给这些功能加上快捷键

我常用的快捷键有

单屏的优势

当你熟练的使用上述技巧,你就基本上可以使用单屏达到多屏开发同样的效率。

单屏也有单屏的优势,使用单屏,你可以获得以下多屏没有的好处

  • 不用摇头晃脑了,你会更容易专注于一件事,不会被其他屏幕上的应用影响,其他应用只有在需要的时候才会被调出来
  • 不用在桌面上放一堆显示器,节省了桌面空间,桌面会更整洁
  • 便携,拿起笔记本,不用依赖外部显示器,就可以随时随地最高效编程
  • 最重要的是省钱,再也不用考虑买或升级显示器了,一个笔记本搞定!
相关推荐
gqkmiss9 分钟前
Chrome 浏览器插件获取网页 iframe 中的 window 对象
前端·chrome·iframe·postmessage·chrome 插件
m0_748247552 小时前
Web 应用项目开发全流程解析与实战经验分享
开发语言·前端·php
m0_748255023 小时前
前端常用算法集合
前端·算法
真的很上进3 小时前
如何借助 Babel+TS+ESLint 构建现代 JS 工程环境?
java·前端·javascript·css·react.js·vue·html
web130933203983 小时前
vue elementUI form组件动态添加el-form-item并且动态添加rules必填项校验方法
前端·vue.js·elementui
NiNg_1_2343 小时前
Echarts连接数据库,实时绘制图表详解
前端·数据库·echarts
如若1234 小时前
对文件内的文件名生成目录,方便查阅
java·前端·python
滚雪球~5 小时前
npm error code ETIMEDOUT
前端·npm·node.js
沙漏无语5 小时前
npm : 无法加载文件 D:\Nodejs\node_global\npm.ps1,因为在此系统上禁止运行脚本
前端·npm·node.js
supermapsupport5 小时前
iClient3D for Cesium在Vue中快速实现场景卷帘
前端·vue.js·3d·cesium·supermap