आपको उपयोग करना चाहिए getpos()
:
आपको एक चर में स्थिति बचाने के लिए:
let save_pos = getpos(".")
getpos()
तर्क को एक निशान के रूप में लेता है, यहाँ "."
आपके कर्सर की वर्तमान स्थिति का प्रतिनिधित्व करता है।
और इसे बहाल करने के लिए:
call setpos('.', save_pos)
यहां पहला तर्क बताता है कि आप अपने कर्सर की वर्तमान स्थिति का चिह्न स्थानांतरित कर देंगे (इसलिए आपकी वर्तमान स्थिति) और दूसरा वह स्थान है जहां चिह्न (वह स्थिति जिसे आपने पहले सहेजा था) रखनी है।
आपका कार्य इस तरह दिखेगा:
function! DollarSplit()
let save_pos = getpos(".")
normal! 6|r$ " replaces the 6th caracter in line with a $
call setpos(".", save_pos)
endfunction
अधिक जानकारी के लिए देखें: :h getpos()
और:h setpos()
आपके उपयोग के बारे में अधिक जानकारी के लिए execute
: यह फ़ंक्शन एक स्ट्रिंग लेगा और इसे निष्पादित करेगा। आपका स्ट्रिंग केवल दोहरे उद्धरण या चर की सामग्री के बीच हार्डकोड वर्ण हो सकता है।
जब आप लिखते हैं
execute col_number."|"
यदि आप 12 वें कॉलम पर हैं, तो विस्तारित स्ट्रिंग होगी 12|
। Execute इस कमांड को निष्पादित करने की कोशिश करेगा लेकिन यह काम नहीं करेगा क्योंकि 12|
विम्सस्क्रिप्ट फ़ंक्शन नहीं है बल्कि एक सामान्य मोड कमांड है।
इसे एक वैंपस्क्रिप्ट से निष्पादित करने के लिए आपको कहना होगा "इसे निष्पादित करें जैसे कि मैंने इसे सामान्य मोड में टाइप किया था", यही सामान्य के लिए उपयोग किया जाता है।
इसलिए बिना निष्पादित किए आपने लिखा होगा:
normal 12|
अब अपने execute
कॉल कार्य को करने के लिए आपको normal
कीवर्ड को अपनी विस्तारित स्ट्रिंग में जोड़ना होगा , जैसे:
execute "normal " . col_number . "|"