Linux和Windows下用快捷键切换到指定窗口的方法

系统安装、升级讨论
版面规则
我们都知道新人的确很菜,也喜欢抱怨,并且带有浓厚的Windows习惯,但既然在这里询问,我们就应该有责任帮助他们解决问题,而不是直接泼冷水、简单的否定或发表对解决问题没有任何帮助的帖子。乐于分享,以人为本,这正是Ubuntu的精神所在。
回复
bysnn
帖子: 4
注册时间: 2008-08-25 2:26

Linux和Windows下用快捷键切换到指定窗口的方法

#1

帖子 bysnn » 2011-12-16 23:18

如果你是PHP程序员,你工作中经常有这样的事:打开三个窗口,一个是编辑器,一个是网页教程,一个是本地网页测试。三个窗口,除了鼠标乱点一通外,最多用 Alt+Tab来切换窗口,可是Alt+Tab对切换两个窗口还行,三个或多个时就会乱了,如果窗口再多一点的话更不用说了,找窗口就够你忙的了,真是浪费时间。有没有可能用快捷键绑定到某个常用窗口呢?比如,我想按alt+shift+a就出来vim, alt+shift+s就出来本地测试窗口,alt+shift+d就出来网页教程?答案是有的,而且linux和windows都有。这里说的是我摸索的办法,需要手工做点东西,没有现成的软件。Ubuntu下我以前用了一段时间,比较成熟了,相对来说,windows我是今天才摸出来的,不算很成熟但也可以的办法。先简单说一下:



1. Ubuntu 主要用wmctrl命令,这个命令可以列出窗口id和名字,还可以把窗口提升到最前面,能实现了这两个功能,当然是成功了一大步了。首先用shell命令把所有的窗口列出来,grep你想要的vim的窗口ID,然后再用wmctrl把这个窗口提升到最前面不就成功了吗? 这个当然要写成一个脚本。第二步,当然就是把一个快捷键绑定到这个脚本上,可以用xkeybinding工具了。如果程序窗口还没有打开时,还可以先打开程序得到窗口。



2.Windows下,我没找到什么特别好的软件,目前也是用脚本编程方法。首先安装最新版本的按键精灵QuickMacro, 这个工具不错,最特色就是把一个快捷键绑定到一个脚本上,打游戏要挂机的朋友估计很多在用它。然后就是编写你的脚本了,比如我打开的vim,窗口标题中包含vim,它可以查找所以窗口的标题,然后匹配你的关键字vim,得到窗口ID,再用命令把窗口提升起来。跟Linux下一样的道理。以下为代码:



//代码开始

Hwnd = getWindowId("VIM")
If Hwnd < 0 Then
//这里可添加候选标题字符
Hwnd = getWindowId("gvim")
End If

If Hwnd > 0 Then
Call Plugin.Window.Active(Hwnd)
Else
MessageBox "Not found window."
End If

Function getWindowId(str)
a = Plugin.Window.Search (str)
y = split(a, "|")
If (UBound(y) - 1) < 0 Then
getWindowId = -1
Else
getWindowId = y(0)
End If
End Function

//代码结束



关键是在Plugin.Window.Search ("VIM"), 是查找窗口标题中有VIM字符的,这里是模糊查询。最好确保你只有一个VIM的窗口,反正你要用特别一点的字符作为这个特定窗口的标志。这段代码需要先把窗口开起来,比如先手动打开VIM,当然你可以修改程序让它自动打开VIM.



以上为基本原理,具体方法自己好好摸索一下。如果谁能写成一个工具安装一下就更好了。

标签: linux windows 快捷键 切换 指定 窗口

本文原创,转载时,请注明出处http://hi.baidu.com/bysnn/home。
上次由 bysnn 在 2011-12-19 10:17,总共编辑 3 次。
头像
枫叶饭团
帖子: 14683
注册时间: 2010-06-16 1:05
系统: Mac OS X
来自: Tencent
联系:

Re: Linux和Windows下用快捷键切换到指定窗口的方法

#2

帖子 枫叶饭团 » 2011-12-16 23:27

学习了
回复