2010-09-03 16 views
11

emacsclient चलाने के बाद मैं लगातार विंडो फोकस को कैसे नियंत्रित करूं?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 स्क्रिप्ट है, जो मेरी पहली से अधिक खिड़की

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

एक पक्ष नोट के रूप में पर केंद्रित है, ऐसा लगता है/dev/बातिल करने के लिए अपने पुनर्निर्देशन भ्रमित वाक्य रचना-हाइलाइटर :(

+0

यह आपकी मदद नहीं कर सकता है, लेकिन 23.2.2 और उबंटू का उपयोग करते समय फोकस मौजूदा emacs विंडो में स्थानांतरित हो रहा है। –

+0

मुझे संदेह है कि यह विंडोज़ पर आपके एक्स-सर्वर के उपयोग से जटिल हो रहा है। क्या आपने खिड़कियों के लिए emacs का उपयोग करने पर विचार किया है? 23.2 प्रीकंपिल्ड उपलब्ध है: http://ftp.gnu.org/gnu/emacs/windows/ – Chadwick

+0

मुझे वास्तव में emacsw32 इंस्टॉल किया गया है। हालांकि, यह सीआईएफएस शेयरों के माध्यम से काम कर रहा है :( – vlee

उत्तर

-3

किसी अज्ञात कारण के लिए, समस्या स्वयं तय की गई। फ़ाइलों को खोलना अब संबंधित फाइल के साथ emacs फ्रेम पर ध्यान केंद्रित करता है। मैं ईमानदारी से अनिश्चित हूं कि व्यवहार में क्या बदलाव आया, लेकिन मैं खुश हूं।

उनकी टिप्पणियों और सुझावों के लिए सभी को धन्यवाद!

0

क्या आपके लिए emacsclient काम करने के लिए "--create-frame" विकल्प होगा? आपको इस तरह से खोले गए प्रत्येक फ़ाइल के लिए एक नया फ्रेम मिलेगा, लेकिन कम से कम यह ध्यान केंद्रित किया जाएगा (मुझे लगता है)।

+0

सुझाव के लिए धन्यवाद! हालांकि, समस्या स्वयं तय हुई (2010-10-12 को मेरा जवाब देखें)। एक साइड नोट के रूप में, मैं फ्रेम का एक टन बनाउंगा अगर मैंने इस दृष्टिकोण का उपयोग किया। – vlee

5

कैसे के बारे में: Emacs 23.1

पर मेरे लिए

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

काम करता है (lower-frame) unfocus करने के लिए उपयोगी हो सकता है।

+0

सुझाव के लिए धन्यवाद! मैंने इस फिक्स की कोशिश की, जो सही व्यवहार को प्रदर्शित करने लग रहा था। दुर्भाग्य से, मैं इस फिक्स के लिए निश्चित रूप से क्रेडिट विशेषता नहीं दे सकता क्योंकि समस्या इस फिक्स के बिना मौजूद नहीं है। – vlee

संबंधित मुद्दे