Mac OS ,全键盘工作,全鼠标浏览

公司

2010-04-25 07:30

KKK 低效率三角

Windows PC 上的鼠标坏掉,我都不会皱下眉头。为了用键盘完成操作,我甚至不惜打开数字键盘模拟鼠标的功能。这样做,不一定总是最快。但是,却避免了 “切换”。

键盘的左右两边,加上鼠标,一共是三个部分。他们各需一只手操作。

人有两只手,各控制三者之二没问题。但是,如果尝试同时控制这三个部分,必然会导致手在三者之间的 “切换”。从键盘到鼠标,或者反之。移动距离是个问题。另外,还有从新定位的烦恼:“切换” 之初的几个操作,你并不非很确定。这些,都导致低效率。

这就是人机 UI 上的新定律: KKK 低效率三角。

KKK.001.jpg

很多高效率的计算机控制方式,都在避免切换:

记忆快捷键避免了从键盘切换到鼠标。

对操控要求极高 Counter-Strike 则反之,把键盘控制键集于左手。这样,有效地避免了右手从鼠标切换回键盘。

全键盘工作

键盘可以以非常高效的编辑文本。所以,如果你的工作是写设计文档,编码,或者写 Blog , Email ,完全可以尝试全键盘操作。为此,你需要以下 4 个东西。

1 快捷键

快捷键无疑是通向全键盘操作的第一步。首先在系统设置里面有快捷键一项,这里你能看到所有系统自带的快捷键。

Tips:

Mac OS 自带的快捷键设置功能,可以自定义任何一个菜单项目为快捷键盘。

2 Key Cue

记住这么些快捷键是个挑战。好在有 Key Cue 。按住 Command ,他会显示出当前界面可以使用的所有快捷键。包括你自己定义的。

3 QuickSilver

记忆太多快捷键未必是愉快地经历。察看 Key Cue 则降低效率。好在 Mac 上还有 QuickSilver 。他利用搜索的方式整合你电脑上的功能。

OS 上的一个操作,一般是三段式的: 对象 + 命令 + 参数 。

与此对应 QuickSilver 有三行。 QS 上,所有可能的 “ 对象”,” 命令”,” 参数”,都是自动过滤的。” 对象” 选择一个 TXT 文件,那么” 命令” 中就不会出现” RUN “。

同时,所有可能的 “ 对象”,” 命令”,” 参数”,都是可以搜索的。” 对象” 这栏打 tnr ,他可以搜索到 TweetNowReading.script 。同样,” 命令” 这栏打 o ,他可以搜索到 Open With…

Tips:

搜索不是 QS 确定这三个栏目的唯一方式。比如 COMMAND G 可以把当前 Finder 中选中的文件作为操作对象。

Tips:

关于对象的” 命令”,利用 SHOW CONTENTS MENU/SHOW ACTION MENU/SHOW MENU ,可以让你忘掉鼠标右键,或者菜单栏。

我们都熟悉程序的名字,Safari ,Mail ,iPhoto 。而命令则是标准的英语。所以快速调用的方式,只需要很少的学习和记忆,却能带来更多,更强大的功能。

KKK Says:

系统自带的 Sportlight 也有搜索功能,但是仅仅限于 “对象” 的搜索。 Google Quick Search Box 也是一个不错的选择。他同样可以支持调用 AppleScript

QS 还有更多功能,记个 Memo 查个辞典,或者自定义 Trigger 之类的。慢慢挖掘。

4 AppleScript

快捷键盘和 QS 几乎可以用键盘完成一切针对单一对象的操作,比如打开 Xcode 。但是如果是跨程序的一组操作的集合,就有些力不从心了。

比如从 Safari 拿到 URL 和标题,然后缩短其中的 URL ,再把他们放到 Tweetie 的发推窗口中。

不过好在我们有 AppleScript 。他可以把上面的这句话,翻译为一段脚本。然后,当你看到有趣内容的时候,只要用 QS 呼出一个 Script 来执行就好了。

Code:

property aWebPageTitle : ""
property aURL : ""

tell application "Safari"

	set aWebPageTitle to name of front document as string
	set aURL to URL of front document as string

	set aURL to "http://tinyurl.com/api-create.php?url=" & aURL
	set aURL to do shell script "curl " & aURL

	do JavaScript "window.open('tweetie:RT: " & aWebPageTitle & " " & aURL & " ','TTMP');" in document 1
	do JavaScript "window.close('TTMP');" in document 1
end tell


KKK Says:

通过定义,配置,或者插件,单独使用 QS 也能完成这些功能。但是 AppleScript 可以把调用和命令分离。命令就是命令,无论用什么方式调用。如果你想改变一个命令的方式,那么改一下脚本就好了。是的,不要忘了那条经典的 ROR 原则 DRY : Don’t Repeat Yourself 。

全鼠标浏览

网络浏览有特殊性:超链接。他出现在页面的各种地方,数量又多。 Tab 切换会让人吐血。这时非要用键盘,多少有些自残的感觉。所以浏览,最好是以鼠标为中心操作。


KKK Says:

其实并不是真正的完全使用鼠标。左手控制键盘的左边部分,右手控制触摸板。类似玩 CS 时的感觉。

1 系统自带多点触控

Mac OS 自带的触摸板本身就提供丰富的设置。向下翻页,调整文字大小,用多点触控,都方便的不能再方便了。

2 可脚本控制的 Safari

Mac OS 上最优秀的浏览器,是 Safari 。不仅仅因为其优秀的 Webkit 内核,或者优雅的界面,或者,完善相应多点触控响应。最重要的,更好的支持 AppleScript 。

Safari 的功能的确不如 Firefox 或者 Chrome 。但是,你可以给她轻松给编写插件。拿到当前页面的情报发推,是一个例子。

切换标签?当然可以。

Code:

tell application "Safari" to activate
tell application "System Events"
	tell process "Safari"
		click menu item "Select Next Tab" of menu "Window" of menu bar 1
	end tell
end tell

关闭窗口?不成问题。

Code:

tell application "Safari" to activate
tell application "System Events"
	tell process "Safari"
		click menu item "Close Tab" of menu "File" of menu bar 1
	end tell
end tell

复杂些的,选中文字然后 Google 呢?

一般的操作是 1 选中文字 2COPY 3 定位 GOOGLE 搜索框 4 粘贴 5 回车。然后你发现,没有新开窗口,当前的文章被覆盖了!

或者可以改进一下:选中文字, Shift + Command + L 。但是没有新 Tab ,而是一个新窗口。而且,Shift + Command + L 不是左手可以控制的。你的右手要经历一次从鼠标到键盘的切换。

这固然是 Safari 设计的考虑不周之处,另一方面,也是你读不懂佳人芳心。

3 xGesture

继续味如嚼蜡的 AppleScript 之前,先看看个有意思的东西 xGesture 。

用过 FireFox 手势插件 All-in-One Gestures 的同学,应该很容易明白这是个什么东西:一个系统级别的手势插件。通过某种手势执行特定功能。比如调大系统音量之类的。

不过 xGesture 最精彩之处是,和 QS 一样,他也可以调用 AppleScript 。换句话说,你可以用鼠标手势,调用一个自己定义的操作集合。

把上面向后切换标签的脚本,定义在右划的手势上;向前切换呢?左划。关闭标签?这样,你就成功的把 Mac 上右手控制的快捷键,移动到了鼠标上。一切浏览操作,都可以通过键盘上的左手和触摸板上的右手配合完成。 KKK 低效率三角?不再出现。

选中文字 Google 怎么办?把下面的 AppleScript 定义在向上的手势上。现在只需要用鼠标选中文字,然后轻轻向上一划。

Code:

tell application "Safari"
	set seletedTxt to (do JavaScript "(getSelection())" in document 1)
	set aURL to "http://www.google.co.jp/search?rls=en&q=" & seletedTxt & "&lr=&aq=f&oq="

	make new tab at end of tabs of window 1

	open location aURL
end tell

局限性

完全不用键盘或者鼠标,其实要求有些过分了。但是相信,以上的各种技巧,可以有效减少你切换的频率。

而就工具而言, xGesture 的复杂度控制的正好。 QuickSilver 过于强大了。 AppleScript 同样有这个问题。我还有一个在 Youtube 下载视频的 Script ,可以完成工作,但已有些沉重了。相比之下, Firefox 下用 Greasemonkey 实现的扩展,则更加强大实用。


KKK Says:

你也许注意到了, QS 那部分的 Tips 特别多。一个原因,就是它的内在逻辑并非特别统一。但是,那些 Tips 也非常有用。有点 Quick And Dirty 的感觉。

程序本身只会竭尽全力完成你交给他的任务,判断它的能力界限,约束或者放弃的智慧,只有你才拥有。上面的方法适合实现解决日常生活中频繁出现而步骤繁琐的小事情。更重型的操作,还是交给 Automator , Service(Service 同样可以结合 AppleScript)或者其他专门的软件完成吧。

最后的话

无论是全键盘工作,还是全鼠标浏览,都是根据当前最主要的任务选择最适当的操控方式。然后,围绕这种操控方式拓展功能,同时,避免 KKK 低效率三角。

Mac 上优秀的第三方软件提供了丰富的调用手段。而 AppleScript 让简单却随心所欲的操控成为可能。

Mac OS 则为 AppleScript 提供的系统级别的支持。程序之间的交互没有问题。甚至, UNIX 传统的命令行 ( Shell ), Mac OS 现代的 GUI ( 原生 AppleScript ),浏览器脚本 ( Javascript ) 之间,都可以互联互通。这是管道的概念的进一步发挥。 Windows 在系统级别上,恐怕没有这种支持。

不过,相信上面实现的功能, Windows 一样可以做到,甚至更加出色。 而且 Windows 还有免费好用的 Writer 。接近全能的媒体播放器。现成的 COD6 。

普通用户会就此倒向 Bootcamp 吧。而你,如果写过 Shell 调过 Javascript ,也许应该探索一下 Mac OS X 华丽界面的背后。更 OO 的程序,模仿自然语言的脚本,超级管道。。。他们让 Mac OS 表现出一种追求实现优雅,胜过功能强大的理想主义。

类似小贝,下底传中,还要发型不乱。

登录,参与讨论前请先登录

评论在审核通过后将对所有人可见

正在加载中

移动互联网/苹果/ERP/SAP。 写过:「 iPhone 可有设计哲学」,「领先五年的迷思」,「以前没有 iPhone OS,以后没有 Mac OS」,「对社交说不」,「 MSNS :移动社交网络 」,「云书店,新阅读」⋯⋯

本篇来自栏目

解锁订阅模式,获得更多专属优质内容