没有Alt-Tab或Command-Tab的快速窗口切换?


12

Alt-Tab或Command-Tab有时可能会很慢,尤其是当您打开许多窗口并且经常切换到其中一些窗口时。您如何解决此问题-除了多次点击Alt-Tab组合键以外,是否有任何其他工具可以直接切换到所需的窗口(最常访问)?

注意:这应在Windows 7,Linux和Mac上运行。

更新:请发布您的键盘快捷键解决方案(使用鼠标的速度不能更快-尤其是在切换到窗口之前进行触摸键入/编写代码时)。

Answers:


16

注意:可在此处找到本文的最新版本。


最好使用键盘快捷键来切换到最常用的应用程序。这是我在三个主要平台上分别做的事情。

GNU / Linux

我将GNOME用作桌面环境。强烈建议您避免在使用键盘可以更快地执行相同功能的区域使用鼠标,以提高生产率。

例如,如果您使用通过TwinView配置的外部显示器,则需要花费一些时间才能将鼠标指针从笔记本电脑显示器的窗口移动到外部显示器的窗口。如果您的显示器分辨率很高,则将花费更多时间。

以下是通常使用鼠标完成的功能列表,但具有此处记录的等效的以键盘为中心的方法。

切换到特定窗口

假设您打开了大约10个窗口,并希望切换到特定窗口。80/20规则在此处适用-您执行的大多数窗口切换仅适用于所有可能窗口的一小部分。就我而言,我经常切换到三个应用程序:Emacs,Firefox和Terminal。因此,将预定义的键绑定到这些窗口更加有用。

按下以下组合键将激活相应的窗口。

ctrl + alt + u: Firefox
ctrl + alt + k: Emacs
ctrl + alt + j: Terminal

这些是对我来说最方便的快捷方式,但是您可以根据需要分配不同的键。

唯一剩下的问题是我们该怎么做?例如,如果您使用的是Sawfish,这是一项轻松的任务。但是对于其他功能不足的窗口管理器(例如Metacity)(Ubuntu中的默认设置),有一个解决方案:wmctrl。在Ubuntu上,您可以使用apt-get安装wmctrl。安装后,请尝试运行以下命令:

$ wmctrl -a Firefox
$ wmctrl -a emacs
$ wmctrl -a Terminal

-a选项激活标题与给定参数匹配的窗口。要映射键,我们使用xbindkeys。使用apt-get 安装xbindkeys并开始编写配置文件〜/ .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中的无鼠标选项卡切换可以通过以下几种方式完成:

  1. 按Alt + n,其中n是制表符编号。例如,按Alt + 2切换到第二个选项卡。除了切换到第一,第二或第三选项卡之外,这通常不是很有用。

  2. Ubiquity的tab命令。您按Ctrl +空格键,然后键入'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上,也可以使用称为AutoHotkey的程序进行相同的操作。

这是我在基于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帖子,我发现Quicksilver是分配键盘快捷键以激活特定应用程序的一种好方法。

有关分配全局键盘快捷键的详细说明,请遵循此职位。由于设置将保存到文件〜/ Library / Application Support / Quicksilver / Triggers.plist,因此您可以轻松地将其移动或符号链接到您的Dropbox目录。


1
我印象深刻。格式不错。
约翰T

5

VistaSwitcher是用于Windows OS的优雅而强大的任务管理实用程序。安装后,它将用一个漂亮的框替换默认的Windows Alt-Tab对话框,该框显示所有正在运行的任务及其名称和预览快照的列表,并使用户能够使用鼠标和键盘快捷键对其执行操作。只需单击一下即可切换任务,最小化,最大化,还原主窗口或关闭过程。

替代文字

VistaSwitcher是免费软件(像它的前身Taskswitch XP一样


我非常喜欢VistaSwitcher!
Ivo Flipse,2010年

3

Windows Vista的切换器对此非常方便,尤其是当您总是像我一样打开至少10多个窗口时。

它具有一项功能,您可以在其中搜索所有打开的窗口的标题名称以更快地找到它(可能很难看到,请检查右上角):

在此处输入图片说明


很好,不需要鼠标。
Sridhar Ratnakumar,2010年


2

在Windows上,您可以使用应用程序Switcheroo,您只需点击其键盘快捷键并开始输入窗口名称或该窗口所属应用程序的名称,然后立即切换至该名称。

对于Linux,有一个类似的应用程序称为Rofi,它是一个窗口切换器,应用程序启动器和dmenu替代品。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.