मुझे विम के साथ नेटवर्क पर फ़ाइलों को कैसे संपादित करना चाहिए?


13

वर्तमान में मैं इसे SSH द्वारा सर्वर में कर रहा हूँ, और Vim को सर्वर पर निष्पादित कर रहा हूँ। यह SCP पर एक दूरस्थ सर्वर से फ़ाइलों को खोलने के बोझिल वाक्यविन्यास से निपटने के लिए नहीं होने का लाभ है, और, इससे भी महत्वपूर्ण बात यह है कि वास्तव में सर्वर के फाइल सिस्टम को जल्दी से नेविगेट करने में सक्षम है। दूसरी ओर, इसमें अंतराल है, जो संपादन को कठिन बनाते हैं।

बहुत सारी दूरस्थ फ़ाइलों के संपादन का कैनोनिकल तरीका क्या है?


6
वास्तव में आप इसे कैसे कर रहे हैं।
इग्नासियो वाज़केज़-अब्राम्स

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

ssh root@myvps.com; vim / etc / somefile - मैं लॉग इन करता हूं, और फिर Vim
jcora

दरअसल यह नेटवर्क के साथ है। जब मैं एक कुंजी दबाता हूं तो उसे यूरोप से अमेरिका में एक पैकेट भेजना पड़ता है, जहां मैं जिस विम उदाहरण का उपयोग कर रहा हूं वह वास्तव में चल रहा है।
जकोरा

आप भी बस ssh root@myvps.com vim /etc/somefile(अनुपस्थिति पर ध्यान दें ;) कर सकते हैं।
terdon

जवाबों:


26

आप SSHFS का उपयोग स्थानीय फ़ोल्डर में दूरस्थ घर को माउंट करने के लिए कर सकते हैं । वर्तमान बुनियादी ढांचे और स्थानीय विम की कम विलंबता का उपयोग करने का लाभ है।


1
सबसे अच्छा तरीका imo। न केवल कम विलंबता, बल्कि केवल एक vimrc बनाए रखने के लिए
exussum

20

आप एक स्थानीय विम या gvim के साथ दूरस्थ रूप से संपादित कर सकते हैं।

:e scp://me@someplace.else/~/myfiles/whatever.file

scpएक सुरक्षित प्रतिलिपि प्रोटोकॉल है । यह उसी तरह प्रमाणित करता है ssh, जैसे आपकी ssh कुंजी को उपलब्ध होने की आवश्यकता है, आदि। समर्थित कई अन्य प्रोटोकॉल हैं (देखें :help netrw-externapp) लेकिन एसपीपी संभवतः सबसे आसान है यदि आप पहले से ही उसी स्थान पर एसएचएस का उपयोग कर रहे हैं।

आप इस तरह से निर्देशिकाओं को ब्राउज़ कर सकते हैं, बस यह सुनिश्चित कर लें कि पथ एक के साथ समाप्त होता है /। अन्यथा विम इसे एक नई फाइल में बदल देता है।

:wस्वचालित रूप से फ़ाइल को scp के माध्यम से लिखता है। अगर किसी कारणवश लेखन विफल हो जाता है, तो आपको ध्यान देना चाहिए, क्योंकि वे स्टेटस बार में "शेल 1 लौटे" तरह की चीज होगी। हालांकि, सावधान रहें: यदि आप ध्यान नहीं देते हैं , तो विम को पता नहीं है और इसके परिणाम हो सकते हैं - उदाहरण के लिए, यदि आप अब छोड़ देते हैं, तो यह आपको चेतावनी नहीं देगा। यदि आप :waबहुत उपयोग करते हैं तो यह याद रखना विशेष रूप से आसान है ; | मेरे पास केवल कैविएट है।

आधिकारिक डॉक्स के लिए, देखें :help netrw


+1 मैं यह लिखने वाला था। Netrw प्लगइन (जो आमतौर पर डिफ़ॉल्ट रूप से स्थापित किया गया है) तरीके दूरस्थ फ़ाइलों को पढ़ने में की एक विस्तृत विविधता है।
ग्रेग हेविगेल

मैं इस विकल्प की चर्चा करते हुए किया गया था जब मैंने कहा: "यह SCP से अधिक एक दूरस्थ सर्वर से खोलने फ़ाइलों की बोझिल वाक्य रचना के साथ सौदा नहीं होने का लाभ मिलता है, और अधिक महत्वपूर्ण बात, वास्तव में जल्दी से सर्वर के फाइल सिस्टम नेविगेट करने के लिए सक्षम किया जा रहा" इस तरह मेरे लिए बहुत सीमित लगता है।
जेकोरा

1
निष्पक्ष होने के लिए, आपके प्रश्न में मूल रूप से "SCP पर दूरस्थ सर्वर" का उल्लेख नहीं था, जिसे बाद में संपादित किया गया था।
ग्रेग हेविल जिल

@GregHewgill: उस नोट के लिए धन्यवाद, क्योंकि मैं थोड़ा चकराया हुआ हूं - यह सामान्य उद्देश्यों के लिए सबसे सरल और सीधा तरीका है (SSHFS के लिए कोई अपराध नहीं!)। यदि किसी URL को फाइलपाथ में जोड़ना अपेक्षाकृत बोझिल है, तो मुझे इस बात की उत्सुकता है कि वास्तव में किए जा रहे कार्य के लिए किसी व्यक्ति को संपादक के साथ बैठकर ऐसा करने की आवश्यकता होती है ... esp। चूँकि आप केवल तीर कमान कर सकते हैं। लेकिन प्रत्येक को उनके स्वयं के लिए।
गोल्डीलॉक्स

@GregHewgill हाँ, मुझे पता है, मैंने अपने फोन पर प्रश्न लिखा था, इसलिए मैंने कुछ सामान अनजाने में छोड़ दिया। गोल्डीलॉक्स, मैं हर समय फाइलें खोलता और बंद करता हूं। फाइलसिस्टम को भी नेविगेट करें और वहां से खोलें। एक URL + पथ को लागू करना "वहां होने" की तुलना में अधिक बोझिल था।
जकोरा

2

मैं rsync का उपयोग करूँगा। यह केवल वही बदलता है जो बदल गया है। इस तरह:

rsync -e ssh -va remoteuser@remotehost:remotedir .

फिर अपने अवकाश पर स्थानीय स्तर पर फ़ाइलों को संपादित करें। जीरो लैग। आप उन्हें करने से पहले सभी फाइलों का निरीक्षण करें:

rsync -e ssh -va . remoteuser@remotehost:remotedir

मैं मान रहा हूँ कि आप पहली बार अपना स्थानीय डायर बनाएं और cdउसमें। आप इसे फ़ाइलों को हटाने का काम भी कर सकते हैं, लेकिन इसके साथ वास्तव में सावधान रहें, क्योंकि गलत निर्देशिका में निष्पादित करने से पूरी निर्देशिका ट्री को न्यूक किया जा सकता है।

rsync -e ssh -va --delete . remoteuser@remotehost:remotedir

मैं क्या करता हूं, मैं इसे "ड्राई मोड" में पहले चलाता हूं, 'n' फ्लैग का उपयोग करके, जैसे:

rsync -e ssh -van --delete . remoteuser@remotehost:remotedir

यह रिपोर्ट करेगा कि उसने क्या किया होगा, अगर वह वास्तविक था। यदि मैं रिपोर्ट की गई सूची से खुश हूं, तो मैं इसे फिर से चलाता हूं, और 'n' ध्वज को हटा देता हूं।

rsync बहुत कुशल है। साथ ही विभिन्न अन्य झंडे भी हैं। यह काफी परिष्कृत है।


0

हो सकता है कि आपको सबसे उपयुक्त तरीके से नामित किया जाए - एसएसएच तरीका, लेकिन फिर भी संपादित की गई फ़ाइलों की बहुत प्रकृति के आधार पर, आप थोड़ा विभाजन आवंटित कर सकते हैं, इसे साझा कर सकते हैं और फाइलें वहां रख सकते हैं, निश्चित रूप से अगर सुरक्षा नीति इस कार्रवाई की अनुमति देती है। इस सुझाव के लिए आप NFS या सांबा का उपयोग सबसे आसानी से कर सकते हैं, लेकिन फिर भी परीक्षण फ़ाइल को संपादित करना UNIX में एक सामान्य अवधारणा है और हो सकता है कि आपको इसे वर्तमान में करने का तरीका रखना पड़े।

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