2010-12-04 11 views
7

मैं इसे सेट करना चाहता हूं ताकि जब मैं एक टेक्स्ट फ़ाइल लिखूं और इसे सहेजूं - यह टेक्स्ट नामक एक डिफ़ॉल्ट फ़ोल्डर में सहेजा जाता है जो मेरे मुख्य वीम फ़ोल्डर में होगा। सी: \ प्रोग्राम फ़ाइलें \ Vim \ vim73 \ टेक्स्टvim सभी txt फ़ाइलों को स्टोर करने के लिए एक डिफ़ॉल्ट फ़ोल्डर सेट, कैसे?

इस समय वे डिफ़ॉल्ट रूप से vim73 फ़ोल्डर में अन्य सभी चीज़ों के साथ मिश्रित रूप से सहेजे जाते हैं। इसलिए यदि मैं टाइप करता हूं: W^M फ़ाइल वहां सहेजी जाती है और मैं इसे टेक्स्ट

उत्तर

9

पर फ़ोल्डर में जाना चाहता हूं, जब आप फ़ाइल विम को सहेजते हैं तो यह आपकी वर्तमान कार्य निर्देशिका में डिफ़ॉल्ट हो जाएगा। आप इसे सत्यापित करने के लिए :pwd कमांड का उपयोग कर सकते हैं। इसे बदलने के लिए आप :cd SomeDirectoryPath का उपयोग कर सकते हैं।

आप अपने vvrrc (या विंडोज़ के समतुल्य) में सीडी कमांड भी जोड़ सकते हैं ताकि प्रत्येक बार जब आप vim शुरू करते हैं तो अपनी वर्तमान निर्देशिका को स्वचालित रूप से बदल दें।

+0

धन्यवाद यह मैंने किया है, इसे मेरे vimrc में जोड़कर, ठीक काम करता है – elwoode

-1

यदि :w निष्पादित किया गया है तो आप abbrevations का उपयोग कर सकते हैं, यह स्वचालित रूप से नीचे दिए गए पाठ में बदल जाता है, मुझे लगता है कि यह आपकी मदद कर सकता है।

cnorea w w! "C:\Program Files\Vim\vim73\TEXT" 
+1

क्या खराब मैपिंग! डब्ल्यू ऐसा उपयोगी चाल कमांड है ... – Benoit

+0

@ बेनोइट, मेरा मतलब है: w save save, movemenet कमांड नहीं। आपका अधिकार है, मैंने अभी इसे ठीक कर दिया है। –

+0

अभी भी, ऐसा करने के बाद, आप निम्न आदेशों का अधिक उपयोग नहीं कर सकते:: wn: wall: wq: win: windo: winc: wp। इसलिए, मै मैपिंग के बजाय abbrevs का उपयोग करने का सुझाव देता हूं, केवल कमांड संस्करण में संक्षेप में ट्रिगर करें ('c'), और 'cnoreabbrev w w' के साथ अन्य संक्षेप (' nore') को ट्रिगर न करें! "सी: ...' – Benoit

3

एक अन्य संभावित दृष्टिकोण एक लिखित घटना के लिए एक autocmd, शायद BufWriteCmd साथ लेखन की प्रक्रिया रोकना होगा। यह देखने के लिए autocmd फ़ंक्शन जांच लें कि फ़ाइल में .txt एक्सटेंशन (या जो कुछ भी आप उपयोग करते हैं) है और सामान्य लिखने की प्रक्रिया को बाईपास करें ताकि आप जहां भी चाहें सहेज सकें। डॉक्स के लिए देखें:

:h BufWriteCmd 

यहाँ कुछ कोड आप vimrc में डाल सकता है, अच्छी तरह से यकीन है कि व्यवहार ठीक है कि तुम क्या चाहते हैं बनाने के लिए परीक्षण नहीं किया है, लेकिन यह मूल रूप से काम करते हुए:

function! WriteTextFile() 
    execute 'write! c:\text\'.expand("%:p:t") 
    set nomodified 
endfunction 
au BufWriteCmd *.txt call WriteTextFile() 
+0

मेरे पास 'bufwritepost' –

+0

@without का उपयोग करके समान ऑटोकॉम्स हैं: यह काम करेगा। अंतर वह कोड है जो मैंने केवल वांछित निर्देशिका में बचाया है। यदि यह BufWritePost का उपयोग कर रहा था तो यह getcwd निर्देशिका में वांछित निर्देशिका _in addtion_ पर टेक्स्ट फ़ाइलों को सहेज लेगा। मुझे लगता है कि यह भी मामला है अगर यह बस बुफवाइट में था, लेकिन सकारात्मक नहीं था। –

0

GWW के रूप में उल्लेख किया है, आप _vimrc फ़ाइल में cd कमांड जोड़ सकते हैं। मुझे खोजने के लिए मुश्किल का उपयोग करने के लिए उचित प्रारूप मिला। पथ उद्धरणों में संलग्न नहीं होना चाहिए, रिक्त स्थान बैकस्लैश से बच जाना चाहिए, बैकस्लाश से बच नहीं जाना चाहिए, और पथ बैकस्लैश में समाप्त होना चाहिए। यहां एक उदाहरण दिया गया है:

cd C:\Documents\ and\ Settings\someUser\ 

मुझे आशा है कि इससे मदद मिलती है।

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