2011-12-14 27 views
6

मैं जावास्क्रिप्ट में एक इंटरफ़ेस बनाना चाहता हूं जहां मैं प्रमुख प्रेस एकत्र करता हूं और उन्हें रिमोट विम इंस्टेंस में भेजता हूं और इंस्टेंस रिपोर्ट को किसी भी बदलाव में वापस भेजता हूं। मुझे पूरा भरोसा है कि मैं सभी ब्राउज़र-सर्वर संचार और जावास्क्रिप्ट को कार्यान्वित कर सकता हूं --- मुझे यकीन नहीं है कि डेटा को कैसे पास किया जाए और यह कैसे मुझसे बात कर सके।प्रोग्रामेटिक रूप से vim को कमांड भेजें

किसी भी पॉइंटर्स की सराहना की जाएगी! धन्यवाद

संपादित करें: प्रारंभिक कार्यान्वयन Github पर पाया जा सकता है।

+2

कभी कोशिश नहीं की, लेकिन यदि आप ['+ क्लाइंटरवर समर्थन] के साथ vim संकलित करते हैं (http://vimdoc.sourceforge.net/htmldoc/remote.html) इसे क्लाइंट-सर्वर मोड में चलाया जा सकता है। एक साधारण उदाहरण के लिए [यह ब्लॉग पोस्ट] देखें (http://ajayfromiiit.wordpress.com/2009/10/21/server-and-client-mode-in-vim/)। –

उत्तर

18

TextAid (विशेष रूप से पर्ल सर्वर) पर एक नज़र डालें। शायद आपको उपयोगी विचार मिलेंगे।

--RE-EDIT--

जब से मैं आपके विचार मैं आगे एक सा देखा है। अपने रिमोट बॉक्स पर

$ vim --servername MYSERVER /path/to/tempfile` 

:

विम जाना चाहिए +clientserver साथ संकलित किया गया है, तो आप इस तरह vim शुरू कर सकते हैं। विम सर्वर मोड में शुरू की है और आप इसे आदेशों की तरह भेज सकते हैं:

$ vim --servername MYSERVER --remote-send 'ihello<Esc>' 

के लिए:

hello 
पहली पंक्ति पर

, यदि आप भेजें:

$ vim --servername MYSERVER --remote-send 'A world<Esc>' 

आप प्राप्त:

hello world 

यदि आप भेजते हैं:

$ vim --servername MYSERVER --remote-send 'yy5p' 

आप प्राप्त:

hello world 
hello world 
hello world 
hello world 
hello world 

यदि आप भेजें:

$ vim --servername MYSERVER --remote-send ':%s/hello/goodbye cruel<CR>' 

आप प्राप्त:

goodbye cruel world 
goodbye cruel world 
goodbye cruel world 
goodbye cruel world 
goodbye cruel world 

जो एक तरह से शांत है, लेकिन आप वापस भेजने की जरूरत है बफर का नया राज्य जो आप लेख द्वारा करेंगे 0 अस्थायी फ़ाइल और प्रत्येक आदेश के बाद अपनी सामग्री को क्लाइंट पर वापस भेजना। इसका मतलब है कि आपके सर्वर पर बहुत कुछ पढ़ा/लिखना है। कोई एक मैक्रो भी लिख सकता है जो प्रत्येक "परिवर्तन" पर बफर की सामग्री को कुछ बाहरी प्रक्रिया में भेजता है।

--EDIT--

आप के बजाय मेरा उत्तर खारिज आप देखा होगा की लिंक का अनुसरण किया था कि HTTP के माध्यम से पर्ल सर्वर से पाठ क्षेत्र की सामग्री को भेज कर काम करता है ऊपर विस्तार।

मुझे नहीं लगता कि यह विम स्थानीय है या दूरस्थ सर्वर पर है।

सर्वर इसे एक अस्थायी फ़ाइल में लिखता है जिसे तब विम के साथ खोला जाता है।

जब विम फ़ाइल लिखता है, तो इसकी सामग्री को सर्वर द्वारा एक्सटेंशन में वापस भेज दिया जाता है।

जेएस का आपका टुकड़ा विस्तार करेगा जो करता है: टेक्स्टरी की सामग्री को पकड़ो, इसे अपने सर्वर पर AJAX POST अनुरोध के माध्यम से भेजें, उत्तर के लिए प्रतीक्षा करें और इसके साथ टेक्स्टरेरा की सामग्री अपडेट करें।

असल में, मुझे लगता है कि आप उपरोक्त स्क्रिप्ट का उपयोग भी कर सकते हैं। या कम से कम इसे अपने स्वयं के ऐप के लिए शुरुआती बिंदु के रूप में लें।

+0

मैं क्लाउड विम संपादक बनाना चाहता हूं, स्थानीय मशीन उपयोगिता नहीं। धन्यवाद –

+0

कृपया अपना प्रश्न अपडेट करें। इसमें कुछ भी नहीं कहता है कि आप क्लाउड विम बनाना चाहते हैं। क्लाउड विम क्या है, वैसे भी? – romainl

+0

किसी ने इस जवाब को क्यों कम किया? महोदय .. – lucapette

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