运行emacsclient后,如何始终如一地控制窗口焦点?
目前,焦点取决于我是否已经运行了emacs服务器。当emacsclient调用另一个编辑器时,焦点将转移到新的emacs窗口。当emacsclient连接到现有的emacs服务器时,焦点不会移位(即它停留在我的putty客户端上)。
我想一直关注emacs窗口,因为我打开文件后通常会去emacs。
非常感谢任何帮助!
备注
版本信息
emacs: 21.4.1
emacsclient: 21.4
client os: Windows XP Service Pack 3
x server: Exceed 11.0.0.0
我的.bash_profile的相关部分
# a wrapper is needed to sandwich multiple command line arguments in bash
# 2>/dev/null hides
# "emacsclient: can't find socket; have you started the server?"
emacs_wrapper () {
if [ 0 -eq $# ]
then
emacsclient -n -a emacs ~/notes.txt 2>/dev/null &
else
emacsclient -n -a emacs $* &
fi
}
alias x="emacs_wrapper"
另外,在我的.emacs结束时我有
(server-start)
我目前的解决方法是一个简单的autohotkey脚本,它专注于我的第一个Exceed窗口
^+x::
If WinExist("ahk_class EXCEEDW:MWCLIENT0")
WinActivate
return
作为旁注,似乎我对/ dev / null的重定向混淆了语法高亮:(
答案 0 :(得分:8)
怎么样:
emacsclient -e "(select-frame-set-input-focus (selected-frame))"
在emacs 23.1上为我工作
无焦点(lower-frame)
可能有用。
答案 1 :(得分:0)
emacsclient的“--create-frame”选项是否适合您?你会以这种方式为每个文件获得一个新框架,但至少它会集中注意力(我认为)。
答案 2 :(得分:-3)
由于某种未知原因,问题已经解决。现在打开文件始终将焦点更改为具有相应文件的emacs框架。老实说,我不确定是什么改变了这种行为,但我很高兴。
感谢大家的意见和建议!