Alt-Tab 或 Command-Tab 有时会很慢,尤其是当您打开了许多窗口,而您经常只切换到其中的几个窗口时。您如何解决这个问题——除了多次点击 Alt-Tab 组合键之外,还有什么工具可以直接切换到所需的窗口(最常访问的窗口)?
注意:这应该适用于 Windows 7、Linux 和 Mac。
更新:请发布您的键盘快捷键解决方案(使用鼠标不能更快 - 特别是当您在切换到窗口之前进行触摸打字/编写代码时)。
答案1
笔记:本文的最新版本可以找到这里。
切换到最常用的应用程序最好使用键盘快捷键。以下是我在三个主要平台上的操作方法。
GNU/Linux
我使用 GNOME 作为桌面环境。强烈建议在使用键盘可以更快完成相同功能的区域避免使用鼠标,因为它可以提高工作效率。
例如,如果您使用配置为双景,将鼠标指针从笔记本电脑显示屏上的窗口移动到外接显示器上的窗口需要一段时间。如果您的显示器分辨率较高,则需要更多时间。
接下来是通常使用鼠标完成的功能列表,但具有如此处记录的等效以键盘为中心的方法。
切换到特定窗口
假设您打开了大约 10 个窗口并且想要切换到某个特定窗口。80/20 规则适用于此处 - 您执行的大多数窗口切换都是针对所有可能窗口的一小部分。就我而言,我更经常切换到三个应用程序:Emacs、Firefox 和 Terminal。因此,将预定义键绑定到这些窗口更有用。
按下以下组合键将激活相应的窗口。
ctrl + alt + u: Firefox
ctrl + alt + k: Emacs
ctrl + alt + j: Terminal
这些对我来说是最方便的快捷方式,但您可以根据需要分配不同的键。
剩下的唯一问题是我们该怎么做?例如,如果您使用 Sawfish,这是一个轻而易举的任务。但对于其他功能不足的窗口管理器(如 Metacity(Ubuntu 中的默认窗口管理器)),有一个解决方案:控制端在 Ubuntu 上,您可以使用 apt-get 安装 wmctrl。安装后,尝试运行以下命令:
$ wmctrl -a Firefox
$ wmctrl -a emacs
$ wmctrl -a Terminal
-a 选项激活标题与给定参数匹配的窗口。要映射键,我们使用 xbindkeys。安装绑定键使用 apt-get 并开始写入配置文件 ~/.xbindkeysrc。以下是我的配置:
"wmctrl -a Firefox"
m:0xc + c:30
Control+Alt + u
"wmctrl -a Terminal"
m:0xc + c:44
Control+Alt + j
"wmctrl -a emacs"
m:0xc + c:45
Control+Alt + k
我通常使用 xbindkeys -k 命令来获取上面看到的所有数字代码。例如,m:0xc 对应于 Control+Alt 组合键。您还可以使用图形配置实用程序 xbindkeys-config 来创建 ~/.xbindkeysrc。
您还可以考虑将 xbindkeys 添加到 GNOME 会话首选项中,以确保每次启动时自动启动。
切换到特定的 Firefox 选项卡
Firefox 中的无鼠标选项卡切换可以通过多种方式完成:
按 Alt+n,其中 n 是选项卡编号。例如,按 Alt+2 可切换到第二个选项卡。除了切换到第一个、第二个或第三个选项卡外,这通常没什么用。
无处不在的 tab 命令。按 Ctrl+space,然后输入“tab gmai”即可切换到 Gmail 标签。这确实很有用,尤其是当您打开了很多标签时。如果 tab 命令比其他以 t 开头的命令使用得更频繁,那么您只需输入“t gmai”而不是“tab gmai”。切换到特定的 Emacs 缓冲区
Emacs 具有出色的ido 模式这使得您可以在切换缓冲区时以交互方式模糊匹配缓冲区名称。通常,按下 Cx b 以调出迷你缓冲区,然后使用制表符完成手动输入缓冲区名称。在 ido 模式下,例如,输入“ny”将匹配缓冲区 main.py;并且它以交互方式执行此操作,而无需您按 Enter 键。将 ido.el 添加到路径后,在 .emacs 中使用以下 elisp 代码:
;; Buffer switching
(require 'ido)
(ido-mode t)
(setq ido-enable-flex-matching t)
(global-set-key (kbd "M-i") 'ido-switch-buffer)
现在按 Alt+i 以交互方式切换缓冲区。
我自己编写的.xbindkeysrc的最新版本可以在这里找到这里。
微软Windows
在 Microsoft Windows 上也可以使用名为自动热键。
这是我在基于 Windows 的笔记本电脑上使用的 AutoHotKey 脚本:
; match window title anywhere
SetTitleMatchMode 2
^!u::WinActivate Opera
^!j::WinActivate ActiveState Komodo
^!k::WinActivate sridharr@double
^!h::WinActivate Mozilla Thunderbird
苹果 Mac OS X
在 Mac 上,没有 Unixy 方法来分配全局键盘快捷键(例如:xbindkeys).. 但有几种解决方法。感谢此 serverfault 帖子, 我发现水银这是一种分配键盘快捷键来激活特定应用程序的足够好的方法。
有关分配全局键盘快捷键的详细说明,关注此帖。由于设置将保存到文件 ~/Library/Application Support/Quicksilver/Triggers.plist,因此您可以轻松地将其移动或将其符号链接到您的Dropbox目录。
答案2
答案3
切换器对于 Windows Vista 来说非常方便,特别是当你像我一样总是打开至少 10 个以上的窗口时。
它有一个功能,您可以搜索所有打开的窗口的标题名称以便更快地找到它(可能很难看到,请检查右上角):