क्या मैं बाहरी कमांड से मौजूदा विम उदाहरण में एक फ़ाइल खोल सकता हूं?


20

कुछ अनुप्रयोगों में एक "सत्र" की धारणा है , जहां आप किसी एप्लिकेशन को किसी मौजूदा इंस्टेंस में फ़ाइल लोड करने के लिए कमांड चला सकते हैं।

उदाहरण के लिए, जब मैं टाइप करता हूं:

$ firefox http://vi.stackexchange.com

फ़ायरफ़ॉक्स एक नया फ़ायरफ़ॉक्स बनाने के बजाय एक मौजूदा फ़ायरफ़ॉक्स प्रक्रिया का फिर से उपयोग करता है।

क्या विम के साथ ऐसा संभव है?

जवाबों:


22

आपको vim संकलित करने की आवश्यकता है +clientserver, और फिर आप vim --servername SERVERvim आवृत्ति शुरू करने के लिए और vim --servername SERVER --remote FILEनामित विम उदाहरण में फ़ाइल खोलने के लिए कमांड का उपयोग कर सकते हैं ।


केवल macOS

मैकविम डिफ़ॉल्ट रूप से एक सर्वर चलाता है - आप mvim --remote-tab-silentअपने मौजूदा मैकविम उदाहरण में एक नया टैब में एक फ़ाइल mvim --remote-silentखोलने के लिए या उसी टैब में एक नए बफर में फ़ाइल खोलने के लिए उपयोग कर सकते हैं ।


4

जबकि @ क्रेगप का उत्तर सही है, मैंने --remote-silentसर्वर नामों की चिंता किए बिना इसे जोड़ना सबसे सुविधाजनक पाया ,
(यह माना जाता है कि आप विम इंस्टेंस को संबोधित नहीं करना चाहते हैं)

यह सर्वर को शुरू करेगा, या एक का उपयोग करेगा यदि इसकी शुरुआत पहले से नहीं हुई है।

इसे इस तरह कहा जा सकता है:

gvim --remote-silent '+cal cursor(line,col)' some_file

उदाहरण के लिए:

gvim --remote-silent '+cal cursor(102,4)' src/code.c

मैंने इस दूरस्थ आरंभीकरण के कारण कर्सर को स्थानांतरित करने की एक अलग विधि का उपयोग करने की आवश्यकता समाप्त कर दी।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.