2011-10-20 3 views
9

/बहु मेरे लिए काम करने के लिए प्रयोग किया जाता है, अब यह चला गया है और मैं निराश हूं।मैं रिमोट होस्ट पर एसएसएच को एमैक्स ट्रम्प का उपयोग कैसे कर सकता हूं और किसी अन्य उपयोगकर्ता के रूप में एक विज्ञापन को विज्ञापन-प्रसार के आधार पर संपादित कर सकता हूं?

मेरा सपना दुनिया में, मुझे क्या करना चाहते हैं:

/MyUser @ remotehost: sudo: anotheruser:/कुछ/path/to/फ़ाइल

... और Ido-मोड काम ।

यहां महत्वपूर्ण बात यह है कि 'माइयूसर', 'रीमोटहोस्ट' और 'ऑल्यूसर' सभी बहुत ही अनुकूल हैं, मैं दूरस्थ मेजबानों की एक बड़ी श्रृंखला का उपयोग करता हूं, अक्सर अलग-अलग उपयोगकर्ताओं के साथ और विस्तृत श्रृंखला में सूड-आईएनजी विभिन्न उपयोगकर्ता

मुझे जोड़ने की आवश्यकता क्या है और मैं इसे emacs को फिर से लोड किए बिना परीक्षण कैसे कर सकता हूं?

+0

क्या आप अधिक सटीक हो सकते हैं: क्या आपने 'ट्रम्प-समापन-फ़ंक्शन-एलीस्ट 'का उपयोग किया था? आपकी कॉन्फ़िगरेशन क्या है? हो सकता है कि निम्न पोस्ट आपकी मदद कर सके: http://stackoverflow.com/questions/95631/open-a-file-with-su-sudo-inside-emacs – Renaud

+1

यह धागा पूर्ण पृष्ठभूमि देता है: http: // सूचियां। gnu.org/archive/html/tramp-devel/2011-10/msg00014.html –

उत्तर

8

this commit के रूप में, TRAMP विज्ञापन-होक एकाधिक होप्स का समर्थन करता है।

मोटे तौर पर, आप इसे इस तरह का उपयोग करें:

/ssh:[email protected]|sudo:[email protected]:/some/file 

मैं इसे ido-mode साथ मज़बूती से काम करने के लिए अभी तक है, जो एक शर्म की बात है है नहीं मिला है, लेकिन यह एक बहुत कुछ नहीं से बेहतर है! :-)

+2

किसी भी सोचने के लिए Emacs 24 में शामिल है। यह भी देखें http://stackoverflow.com/a/16408592/324105 – phils

+0

पुष्टि की कि यह मेरे लिए Emacs 24.3 पर काम करता है, कोई विशेष कॉन्फ़िगरेशन आवश्यक नहीं है। स्पष्टीकरण का एक बिंदु: यदि आपका ~/.ssh/config (होस्ट के साथ) में परिभाषित उपनाम है, तो दोनों स्थानों पर के लिए अपने स्थानीय उपनाम का उपयोग करें - आपको सूडो के लिए सही होस्टनाम में अनुवाद करने की आवश्यकता नहीं है । आप दूरस्थ निर्देशिकाओं और एशेल खोलने के लिए इसे थके हुए/थके हुए + के लिए भी उपयोग कर सकते हैं। – mike

0

निम्नलिखित कोड मदद मिल सकती है:

(defun find-file-as-root() 
    "Find a file as root." 
    (interactive) 
    (let* ((parsed (when (tramp-tramp-file-p default-directory) 
        (coerce (tramp-dissect-file-name default-directory) 
          'list))) 
      (default-directory 
      (if parsed 
       (apply 'tramp-make-tramp-file-name 
         (append '("sudo" "root") (cddr parsed))) 
       (tramp-make-tramp-file-name "sudo" "root" "localhost" 
              default-directory)))) 
     (call-interactively 'find-file))) 

मैं अपने .emacs फ़ाइल में था, और इसे यहाँ से आया लगता है: http://atomized.org/2011/01/toggle-between-root-non-root-in-emacs-with-tramp/

मैं इसे बड़े पैमाने पर इस्तेमाल नहीं किया है, लेकिन यह की तरह लगता है यह सही दिशा में एक कदम है।

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

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