Emacs

2014-05-12 6 views
7

शुरू करने के लिए अविश्वसनीय रूप से लंबा लगता है कल, मैं :q 'डी विम थोड़ी देर के लिए Emacs कोशिश करने के लिए। मैंने एलिस्प (जो कि विमस्क्रिप्ट से सौ गुना बेहतर है) का उपयोग शुरू कर दिया है, लेकिन जब भी मैंने इसे पहले स्थापित किया था (yum के माध्यम से), और कुछ भी नहीं बदला था, इसे शुरू करने में लगभग 30 सेकंड लग गए, और अभी भी (दोनों GUI और -nw)।Emacs

Loading /usr/share/emacs/site-lisp/site-start.d/desktop-entry-mode-init.el (source)...done 
Loading /usr/share/emacs/site-lisp/site-start.d/rpmdev-init.el (source)...done 

फ़ाइलों आरपीएम पैकेज मैं स्थापित करने के लिए विशिष्ट होने लगते हैं:

मैं *Messages* बफर जाँच की। मैंने उनके नाम बदलने की कोशिश की, फिर भी कोई फर्क नहीं पड़ता। यह अभी भी 30 सेकंड लेता है।

मैं कभी बाहर निकलने Emacs (मैं केवल यह निलंबित) और उस में सब कुछ करने की कोशिश कर रहा द्वारा आंशिक रूप से इसका समाधान कर लिया है, लेकिन यह कभी कभी खुले दो Emacs के लिए अच्छा होगा, खासकर जब से मैं अपने टर्मिनल एमुलेटर का उपयोग करने के लिए एक प्रवृत्ति है tmux जैसे कुछ के बजाय विभाजन को विभाजित करें।

मुझे एहसास हुआ कि Emacs Vim से धीमी गति से लोड होगा, लेकिन यह एक ताजा इंस्टॉल के लिए हास्यास्पद लगता है। क्या किसी को पता चला है कि क्या हो रहा है?

धन्यवाद!

+2

वास्तव में Emacs उपयोगकर्ताओं का एक बहुत प्रति सत्र एक बार Emacs शुरू; आप जितनी चाहें उतने फ्रेम खोल सकते हैं (जब आप लॉग इन करते हैं और फ़ाइल को संपादित करने के लिए 'emacsclient' चलाते हैं तो' emacs -d' प्रारंभ करें)। लेकिन 30 के स्टार्टअप समय सामान्य नहीं है; आपके पास एक पैकेज अजीब कुछ कर रहा है। क्या 'emacs -q' जल्दी लोड हो जाता है? यदि नहीं, * संदेश * बफर को देखते हुए, जिसमें फ़ाइल में लंबे समय लग रहा है? आपको Emacs कहां से मिला (कौन सा वितरण पैकेज), और धीमी init फ़ाइल कहां से आती है? – Gilles

+0

'emacs -q' तेज़ नहीं है। दोनों init फ़ाइलों को हटाने से यह हल नहीं होता है। मैंने इसे 'yum install emacs' का उपयोग करके इंस्टॉल किया है। इसे 'emums.x86_64' कहा जाता है,' 1: 24.3-11.fc19' 'yum' के अनुसार। – jocap

+4

ओह, क्षमा करें, मुझे यह पूछना चाहिए था: 'emacs -Q' तेज है? ('-q' आपकी व्यक्तिगत init फ़ाइल लोड नहीं करता है, '-Q' सिस्टम init फ़ाइल को लोड नहीं करता है।) यदि यह है (और मुझे संदेह है), सिस्टम संकुल में से एक अपराधी है। यदि नहीं, तो यह एक बड़ी बंदूक के लिए कहते हैं। 'Strace -tt -o emacs.strace emacs -q -nw' चलाएं और ट्रेस पोस्ट करें। (यह तब भी उपयोगी हो सकता है जब यह एक सिस्टम पैकेज है जो इतने लंबे समय तक रुक रहा है।) – Gilles

उत्तर

11

Emacs की समस्या फ़ाइल का कहना है:

*** Emacs startup on GNU/Linux systems (and possibly other systems) is slow. 

This can happen if the system is misconfigured and Emacs can't get the 
full qualified domain name, FQDN. You should have your FQDN in the 
/etc/hosts file, something like this: 

127.0.0.1 localhost 
129.187.137.82 nuc04.t30.physik.tu-muenchen.de nuc04 

The way to set this up may vary on non-GNU systems. 

यह "धीमी स्टार्टअप" आम तौर पर एक समय समाप्ति से आता है, और 30 के बारे में सही लग रहा है।

एक साइड नोट के रूप में: DNS लुकअप जो इसे धीमा कर देता है उसे उन दिनों में महत्वपूर्ण/उपयोगी माना जाता था जहां (लगभग) सभी मशीनों का एक स्थिर आईपी पता था। आजकल इस तरह से एकत्र की गई जानकारी प्रयास को औचित्य साबित नहीं करती है, इसलिए Emacs-25 से शुरू होने पर, Emacs इस DNS लुकअप को निष्पादित नहीं करता है, इसलिए यह समस्या अब और मौजूद नहीं होनी चाहिए।

+0

/etc/hosts के साथ कोई समस्या नहीं प्रतीत होती है। यह कहता है: '127.0.0.1 localhost.localdomain localhost' ' :: 1 localhost6.localdomain6 localhost6'। मैंने इसे तुम्हारा बदल दिया, मदद नहीं की। – jocap

+0

स्टीफन सही है। यदि आदेश 'hostname -f' एक मान देता है, तो आपका पूर्णतः योग्य डोमेन नाम स्थापित किया गया है, और emacs जल्दी से शुरू हो जाएगा। – Gabe

1

ठीक है, मेरे पास एक (quirky और अस्थायी) समाधान है। मुझे इंटरनेट तक पहुंचने के लिए dhclient em1 चलाने की ज़रूरत है, जो Emacs को लोड करने में 30 सेकंड लगते हैं, शायद कुछ टाइमआउट के कारण। तो, पहले से ही होने dhclient em1 चलाने के लिए, मुझे लगता है कि निम्नलिखित है Emacs शुरू करने के लिए एक खोल स्क्रिप्ट का उपयोग करें:

sudo pkill dhclient 
sudo ifconfig em1 down 
emacs -nw -daemon 2> /dev/null 
sudo ifconfig em1 up 
sudo dhclient em1 

नेटवर्किंग अक्षम कर देता है यही कारण है, एक डेमॉन के रूप में Emacs की शुरूआत, और फिर से सक्षम बनाता है नेटवर्किंग। यह बदसूरत है, लेकिन यह अभी के लिए काम करता है। अगर किसी और के पास बेहतर जवाब है, तो मुझे यह सुनकर खुशी होगी। बेशक, em1 को आपके ईथरनेट डिवाइस (शायद eth0, मुझे लगता है) द्वारा प्रतिस्थापित करना होगा।

1

मुझे स्टार्टअप के लिए लगभग 15 सेकंड लगने वाले एमएक्स के साथ एक सुस्त समस्या थी। मेरे मामले में कारण एक DNS टाइमआउट था। किसी कारण से, मेरे छात्रावास DNS के साथ, एक असफल रिवर्स लुकअप (होस्ट 127.0.0.1) में लगभग 10 सेकंड लगते हैं। Google नेमसर्वर (8.8.8.8) द्वारा DNS सर्वर को प्रतिस्थापित करने से लगभग तुरंत "नहीं मिला: 3 (NXDOMAIN)" प्रतिक्रिया उत्पन्न होती है। उसी समय, Emacs का स्टार्टअप समय 2 सेकंड से भी कम हो गया। धन्यवाद @ स्टेफन जिन्होंने मुझे DNS समस्याओं की दिशा में इंगित किया।

संपादित करें: नेटवर्क प्रबंधक में अतिरिक्त एनएस के रूप में Google नेमसर्वर जोड़ना भी काम करता है। (यानी जब आपका संकल्प।conf इस क्रम में एनएसएस है:

nameserver a.b.c.d 
nameserver 8.8.8.8 

)