Слабый фокус окна

Как последовательно контролировать фокус окна после запуска emacsclient?

В настоящее время фокус зависит от того, запущен ли у меня сервер emacs. Когда emacsclient вызывает альтернативный редактор, фокус смещается на новое окно emacs. Когда emacsclient подключается к существующему серверу emacs, фокус не смещается (т. Е. Он остается на моем клиенте-замазке).

Я хотел бы постоянно сосредоточиться на окне 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 ответа

Решение

По какой-то неизвестной причине проблема исправлена ​​сама собой. Открытие файлов теперь последовательно изменяет фокус на фрейм emacs с соответствующим файлом. Я честно не уверен, что изменило поведение, но я счастлив.

Спасибо всем за их комментарии и предложения!

Как насчет:

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

у меня работает на emacs 23.1

Расфокусировать (lower-frame) может быть полезным.

Подойдет ли опция --create-frame для emacsclient? Вы получите новый кадр для каждого файла, который вы открыли таким образом, но, по крайней мере, он будет сфокусирован (я думаю).

Другие вопросы по тегам