विस्मार्क के रूप में बफर की सामग्री को निष्पादित करें


10

मेरे पास एक nofileबफर है जिसमें vimscript है, और मैं इसे निष्पादित करना चाहता हूं। हालांकि, :so % काम नहीं करेगा क्योंकि इसे एक सहेजे गए फ़ाइल की आवश्यकता है, बफर की नहीं। क्या डिफ़ॉल्ट रूप से ऐसा करने का कोई vim कमांड है? यदि नहीं, तो क्या यह एक फ़ंक्शन बनाना संभव है जो समान चीजें करता है?

जवाबों:


13

हां, आप पूरे बफ़र को ggyGया :%yइसके साथ निष्पादित कर सकते हैं :@"

संक्षेप में:

:%y|@"<CR>

मैपिंग में उपयोग किया जाता है:

nnoremap <key> :%y|@"<CR>

एक लचीली कमांड में उपयोग किया जाता है जो डिफ़ॉल्ट रूप से या एक वैकल्पिक सीमा द्वारा पूरे बफर पर काम करता है:

command! -bar -range=% Foo execute <line1> . ',' . <line2> . 'y|@"'

आपके पास पहले कमांड में एक लापता कॉलोन है।
विक्टर

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