高效法则 之 你还在用这么low的方法打开软件吗?
电脑上的诸多功能被组织成软件的形式提供给用户。聊天的有QQ/Skype,看电影的有腾讯视频/芒果TV,听音乐的有酷狗/LessDJ,做图的有PS/Sketch,写代码搞开发的各种IDE Eclipse/Visual Studio/Idea。。。太多,此处省略1千字。
我们是这样打开软件的吗?
为了使用电脑,我们一定需要打开软件。我们是怎么打开软件的呢?Windows用户,在乱糟糟的整个桌面上,来回扫视多遍重要找到Eclipse,然后鼠标移过去双击打开。或者比较爱整洁的人,程序都在开始菜单下,某天要找个用于比较文件的Beyond Compare,需要依次点击“开始->所有程序-> ... -> Beyond Compare”。Mac用户用的是Dock,程序多了之后,Dock上面软件图标小的要用放大镜才能找到。
大家都习惯了这些打开软件的方式,习惯归习惯,它高效吗?假设我的电脑有个随时待命的语音控制中心,我对着它大吼一声“打开Eclipse”,Eclipse就打开了。这个交互是直抵本质的,我只说了我想要的。而通过开始菜单一层层地找,则是掺杂了电脑对我们的一种展现形式。如果你写过几年代码,一定听说过这样的话“代码要描述意图,而不是具体怎么做”,同样,和电脑的交互,我们也应该站在更高的层面,接近本质,而不是陷入到电脑强加给我们的各种外在形式中去。
提示:关注本质,而不是形式。
在通过电脑完成一件事情的过程中,我们和电脑的交互越多就会前进的越慢。
提示:和电脑交互越少,我们就会前进的越快。
前面说了语音控制中心可以直抵交互本质,但由于语义解析困难,所以到现在也没有看到一个靠谱的桌面软件(如果有,请一定告诉一码,感激不尽)。对于打开软件而言,我们有一个非常好的工具:加载器。
用加载器打开软件,只需要“呼出加载器 -> 输入你要打开的软件的部分名字 -> 回车",整个过程中手不用离开键盘,不需要四处扫视,不需要鼠标来回移动点击,效率不可同日而语。
下面我们将分别介绍Windows和Mac上的加载器。Linux略过,主要原因是一码平时用Linux,都是通过SSH登陆到远程服务器上使用命令行,没有使用桌面版Linux的经验,还写那就是对大家不负责了。
Windows上的加载器 Executor
安装好Executor后,第一件事情应该是给它设置一个顺手的呼出热键。首先打开Executor,然后按下Ctrl + S,就可以进入设置界面。如图,一码设置的是Ctrl + Space。
现在按下设置好的热键Ctrl + Space,看到了什么?然后在里面输入“fir”,就可以找到firefox/firewall等程序,然后回车就可以打开。
是不是有种如臂使指的感觉?指哪儿打哪儿。
Excutor自身还包装了些Windows常用的功能,可以像打开软件一样来使用。比如清空回收站,只需要在Excutor中输入“empty”并回车。
除了打开软件,我们还经常要打开文件,比如文档。Windows下有Everything。同样的这款软件也可以配置呼出热键,然后直接输入文件的部分名称进行搜索。
Everything搜索速度非常快,而且建立索引的范围是可配置的,可以称为Windows下的文件查找神器。唯一的限制是它只能在NTFS文件系统下工作。
Mac上的加载器 Alfred 2
安装好后第一件事情依然是配置顺手的热键,一码配置的是Alt + Space。按下Alt + Space,然后输入部分程序名“idea”,并回车。
Alfred还集成了对文件的搜索和各种操作,直接包含Windows上Executor和Everything两个软件的功能。首先呼出Alfred,然后输入“scala”,得到文件列表。
再按下Alt + →,进入对该文件的各种操作界面。
可以说支持了对文件的各种操作,才使得Alfred可以替代原生的Finder。
当然Alfred真正强大的地方还不在这儿。例如,我们想看大家对《速度与激情7》的评价如何,那需要:
- 打开浏览器
- 输入豆瓣网址,进入豆瓣网
- 在豆瓣网输入“速度”并回车搜索
- 选择《速度与激情7》的评论,点击进入
多少次交互?来看看Alfred的豆瓣Workflow是如何支持的。热键呼出Alfred,键入关键词“movie 速度”,稍作等待。
虽然已经多次使用这个功能,但现在说到这,一码依然如第一次看到她一样,激动不已。
注意,豆瓣Workflow不是Alfred自带的插件,需要下载安装。
小结
光是使用本文提到的这些被称为“神器”的软件,就已经能够提升效率了。但是更为重要的,一码想要传达的是“为什么使用这些软件”背后的动机,就是文中的“提示”,汇总如下:
- 关注本质,而不是形式。
- 和电脑交互越少,我们就会前进的越快。
优雅程序员 原创,转载请注明出处
高效法则 之 你还在用这么low的方法打开软件吗?的更多相关文章
- subprocess模块还提供了很多方便的方法来使得执行 shell 命令
现在你可以看到它正常地处理了转义. 注意 实际上你也可以在shell=False那里直接使用一个单独的字符串作为参数, 但是它必须是命令程序本身,这种做法和在一个列表中定义一个args没什么区别.而如 ...
- winform,wpf全屏 还显示任务栏的解决方法
原文:winform,wpf全屏 还显示任务栏的解决方法 以wpf为例: 全屏代码: this.Topmost = true; this.WindowStyle = System.Windows.Wi ...
- 如何快速高效简洁的打开软件 干净利索的windows快捷程序启动器
本文的主题是如何高效快捷的打开你想要打开的软件 本文介绍的应该是最简洁的一种方式,借助于windows内部的path进行设置 也可以认为是一种形式的windows应用启动器程序---win+R快速打开 ...
- 卸载完百度影音以后天气助手还在,而且总是自己主动打开ie浏览器,解决方式
今天暴风影音不好用了.我就安装了百度影音,还有意外发现.相同的视频,用百度影音看不清楚,然后我就直接卸载了.结果卸掉以天气小助手还是在,而且总弹白色小框框,各种广告.最忍不了的是还自己主动打开ie浏览 ...
- ubuntu 上已经安装libxml2还提示需要reinstall的解决方法
最近在ubuntu上配置环境,遇到一些奇怪的问题,已经安装了libxml2了,运行 apt-get install libxml2提示已经是最新版本了,可以在安装软件的时候还是提示没有libxml2, ...
- 《C#高效编程》读书笔记10-使用可选参数减少方法重载数量
C#现在支持调用者一方使用具名参数(named parameter).类型中的名称也成为了公有接口的一部分.修改公有参数名称将有可能破坏掉调用者的代码. public void SetName(str ...
- 重写Router.prototype.push后还报NavigationDuplicated错误的解决方法
vue项目路由跳转时控制台出现NavigationDuplicated错误, message: "Navigating to current location (XXX) is not ...
- 纯绿色集成环境,可切换180个Mysql、700个PHP版本
测试神器又出新版!功能更强大(目测linux版本也快要出了,拭目以待吧) PHPWAMP8.8.8.8集成环境,目测大概更新如下内容(我也就是大略看了下更新内容) 1.支持自定义设置任意Mysql版本 ...
- 【转】高效Java编程工具集锦
原文地址:http://geek.csdn.net/news/detail/57469 Java 开发者常常都会想办法如何更快地编写 Java 代码,让编程变得更加轻松.目前,市面上涌现出越来越多的高 ...
随机推荐
- Java_注解_异常_01_ElementType cannot be resolved to a variable
一.异常现象: 自定义注解时, @Retention和@Target都能导入进来,但是却报下列错误: RetentionPolicy cannot be resolved to a variable ...
- 【构建二叉树】02根据中序和后序序列构造二叉树【Construct Binary Tree from Inorder and Postorder Traversal】
我们都知道,已知中序和后序的序列是可以唯一确定一个二叉树的. 初始化时候二叉树为:================== 中序遍历序列, ======O=========== 后序遍 ...
- PUN介绍(干货)
PUN介绍 入门 Photon Unity Networking(首字母缩写PUN)是一个Unity多人游戏插件包.它提供了身份验证选项.匹配,以及快速.可靠的通过我们的Photon后端实现的游戏内通 ...
- 原来问题在这里-我的memory leak诊断历程
自从公司开始将java作为主要开发语言后,C++与java的混合应用日趋增多. java与C++的通信主要也是使用JNI来完成,这并没有什么问题.对于这样的混合应用项目来说,最大的噩梦莫过于memor ...
- git常见使用情境整理
一.版本回退 回退到某个commit版本的方法如下: 1. 查看commit历史 git log 找到想要回退的版本的号码,eg:f765889 2. 回退到该版本 git reset f765889 ...
- Poj 1973 Software Company(二分+并行DP)
题意:软件公司接了两个项目,来自同一个合同,要一起交付.该公司有n个程序猿来做这两个项目A和B,每个项目都被分为m个子项目,给定每个程序猿做一个A中的子项目需要的时间Xi秒,和做B中的子项目所需时间Y ...
- 问题13:如何在for语句中迭代多个可迭代的对象
from random import randint a1 = [randint(10, 50) for _ in range(5)] a2 = [randint(10, 50) for _ in r ...
- 杂项:art-template-loader
ylbtech-杂项:art-template-loader 1.返回顶部 2.返回顶部 3.返回顶部 4.返回顶部 5.返回顶部 1. https://www.npmjs.com/p ...
- ceph-deploy mon add 失败
ceph-deploy mon add 失败 标签(空格分隔): ceph-deploy 运维 问题描述: 现有集群只有一个mon,需要通过ceph-deploy mon add添加两个mon.在ad ...
- content-disposition attachment filename 在Firefox和IE中得到不同的结果
在Firefox中需要把filename 用双引号包起来,才能得到想要的名字,不然如果含有空格,会丢掉空格后面的部分.而IE会把空格转为_,因此也需要HttpUtility.UrlPathEncode ...