emacsclient窗口焦点

时间:2010-09-03 14:25:06

标签: emacs emacsclient

运行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的重定向混淆了语法高亮:(

3 个答案:

答案 0 :(得分:8)

怎么样:

emacsclient -e  "(select-frame-set-input-focus (selected-frame))"

在emacs 23.1上为我工作

无焦点(lower-frame)可能有用。

答案 1 :(得分:0)

emacsclient的“--create-frame”选项是否适合您?你会以这种方式为每个文件获得一个新框架,但至少它会集中注意力(我认为)。

答案 2 :(得分:-3)

由于某种未知原因,问题已经解决。现在打开文件始终将焦点更改为具有相应文件的emacs框架。老实说,我不确定是什么改变了这种行为,但我很高兴。

感谢大家的意见和建议!