Слабый фокус окна
Как последовательно контролировать фокус окна после запуска 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? Вы получите новый кадр для каждого файла, который вы открыли таким образом, но, по крайней мере, он будет сфокусирован (я думаю).