मैं एक ऐसा फ़ंक्शन लिखना चाहता हूं जिसे मैं मानचित्र से कॉल कर सकता हूं। विचार बफर सामग्री फिट करने के लिए एक विंडो का आकार बदलना है। यह भी मुश्किल नहीं है:केवल लॉजिकल लाइनों को ध्यान में रखते हुए फिट करने के लिए विंडो का आकार कैसे बदलें?
fu! ResizeWindow(vert) "{{{
if a:vert
let longest = max(map(range(1, line('$')), "virtcol([v:val, '$'])"))
exec "vertical resize " . (longest+4)
else
exec 'resize ' . line('$')
1
endif
endfu "}}}
मैं, हालांकि, समारोह की तरह तार्किक लाइनों को ध्यान में रखना होगा जब ऊंचाई की गणना (मैं बहुत ज्यादा चौड़ाई के बारे में चिंतित नहीं हूँ)।
उदाहरण के लिए, एक पंक्ति जो लपेटी गई है (:set wrap
के कारण) दो या दो से अधिक पंक्तियों के रूप में गिना जाएगा। फोल्ड किए गए 37 लाइनों का एक ब्लॉक केवल एक के रूप में गिना जाएगा।
क्या किसी को भी इसे 'लॉजिकल लाइन गिनती' प्राप्त करने के सुविधाजनक तरीके से पता है और इसे मैन्युअल रूप से गणना करने के बिना? अगर मुझे मैन्युअल रूप से ऐसा करने की ज़रूरत है तो क्या कोई अन्य मामला है जो मुझे याद आ रहा है जिससे लाइनों को संभावित रूप से अलग-अलग लाइनों के साथ प्रदर्शित किया जा सकता है?
धन्यवाद! यही वही है जो मैं ढूंढ रहा था। –