2010-09-03 5 views
11

Comment puis-je contrôler le focus de la fenêtre après l'exécution d'emacsclient?emacsclient focus de fenêtre

Actuellement, le focus dépend de si un serveur emacs est déjà en cours d'exécution. Lorsque emacsclient appelle un autre éditeur, le focus est déplacé vers la nouvelle fenêtre emacs. Lorsque emacsclient se connecte à un serveur emacs existant, le focus n'est pas décalé (c'est-à-dire qu'il reste sur mon client putty).

Je voudrais toujours me concentrer sur la fenêtre emacs, puisque je vais habituellement à emacs après l'ouverture d'un fichier.

Toute aide serait grandement appréciée!

Remarques

Version Info

emacs: 21.4.1 
emacsclient: 21.4 
client os: Windows XP Service Pack 3 
x server: Exceed 11.0.0.0 

section pertinente de mon .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" 

En outre, à la fin de mes emacs je

(server-start) 

Ma solution actuelle est un simple script autohotkey, qui se concentre sur ma première fenêtre Exceed

^+x:: 
If WinExist("ahk_class EXCEEDW:MWCLIENT0") 
    WinActivate 
return 

Comme une note de côté, il semble que mon redirection vers/dev/null confondre la syntaxe surligneur :(

+0

Cela peut ne pas vous aider, mais le focus semble se déplacer vers la fenêtre emacs existante lorsque vous utilisez 23.2.2 et Ubuntu. –

+0

Je suppose que cela est compliqué par l'utilisation de votre serveur X sur Windows. Avez-vous envisagé d'utiliser emacs pour Windows? 23.2 est disponible précompilé: http://ftp.gnu.org/gnu/emacs/windows/ – Chadwick

+0

En fait, emacsw32 est installé. Cependant, il est angoissant de travailler à travers les partages CIFS :( – vlee

Répondre

-3

Pour une raison inconnue, le problème s'est résolu. L'ouverture de fichiers change maintenant de manière constante le cadre emacs avec le fichier correspondant. Je ne sais pas vraiment ce qui a changé le comportement, mais je suis content.

Merci à tous pour vos commentaires et suggestions!

0

L'option "--create-frame" d'emacsclient fonctionnerait-elle pour vous? Vous obtiendrez un nouveau cadre pour chaque fichier que vous avez ouvert de cette façon, mais au moins, il serait focalisé (je pense).

+0

Merci pour la suggestion! Cependant, le problème s'est résolu (voir ma réponse le 2010-10-12) .Par note, je créerais une tonne d'images Si j'ai utilisé cette approche – vlee

5

Que diriez-vous:

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

fonctionne pour moi sur emacs 23.1

Pour Unfocus (lower-frame) pourrait être utile.

+0

Merci pour la suggestion! J'ai essayé ce correctif, qui semblait présenter le comportement correct.Malheureusement, je ne peux pas attribuer définitivement le crédit à ce correctif car le problème n'existe plus sans ce correctif. – vlee

Questions connexes