SWBetaWiKiEmacs启动外部GUI程序 2016-06-20
Emacs启动外部GUI程序
引子
自开始折腾 Emacs 后,后遗症明显:欲用键盘操纵一切。
现在更甚,“开始”->“所有程序”->“XXX”都懒得操作,网上觅得各种快速启动软件逐一测试。花哨的,不喜,低调的我辜负了软件设计者的良苦之心;功能多的,不喜,你一快速启动软件,整那么多事儿烦不?
最后,顺心者有两款:ALTRun 和 Runfast。可惜,都已停止维护。ALTRun 时有崩溃; Runfast 添加新程序,初次运行,无响应,需再次快捷键打开,方可运行。没娘的娃儿啊…
曙光
实为偶然得之。Win 的 Cmd 太不顺手了,各种 Google欲换之而后快,找到 Alternativeto 这个神网站,自我介绍是:
AlternativeTo is a free service that helps you find better alternatives to the products you love and hate.
于是了解到还有 ConEmu、cmder 等好玩好用的 console。
ConEmu
亮点多,不必多说。缺点暂有一个,不支持中文,ls
下中文一片乱码。解决无果,弃。
cmder
亮点更多,阅者可 google。中文乱码可解决,但不是网上给ls
alias 个别名,而是把 Git 的 ls.exe 复制到 cmder 的 bin 文件夹。
哦?!即然可以这样,那么直接给某个程序 alias 个别名,不就可以启动想打开程序!实践之:
启动 cmder,Win+Alt+p 打开设置,依次点击 Startup->Environment,在右边输入框内操作。例如要启动 firefox:
1 | alias ff="C:\Program Files\Mozilla Firefox\firefox.exe" |
重启 cmder,即可在命令行输入 ff 启动 firefox 了,熟悉的小狐狸来了!
至此,忽然心一动,能煮咖啡的 Emacs 难道不能做这件事吗?google 之。
万能的 Emacs
当然,Emacs 完全可以胜任启动外部程序的重任。路子还挺多:
- 写个调用函数,放在 .emacs 里。
- Eshell 中打开
额外辅助:Cygwin 的 run.exe 程序。
函数
还是以 firefox 为例,将以下函数放到 .emacs 里。
1 | ;;;; run firfox (defun run-ff() (interactive) (w32-shell-execute "open" "C://Program Files//Mozilla Firefox//firefox.exe") ) |
打开 Emacs,Alt+x,命令行输入:run-ff
Eshell
Emacs文件来夹->.emacs.d->eshell,有个 alias 文件,用 Emacs(或其他文本编辑器)打开,填写:
1 | alias run ff="C:\Program Files\Mozilla Firefox\firefox.exe" |
打开 Eshell,输入ff
,好了,可以告别快速启动软件了。
PS 不使用 Cygwin 的 run 也可以,会出现要么打不开有 GUI 的程序,要么打开后开启独占模式,Eshell 只有等进程退出后才能缓过劲来。