जवाबों:
आप बस लाइन पर किसी भी निरंतर स्थान को कमांड का उपयोग करके एक नई रेखा के साथ बदल सकते हैं :s/\s\+/\r/g
। \s\+
मतलब एक या एक से अधिक व्हाट्सएप वर्ण, और \r
एक नई पंक्ति है, देखें :help :substitute
और :help regexp
विवरण के लिए। यदि आप एक लाइन पर कमांड चलाते हैं जैसे:
foo bar baz
आपको मिला:
foo
bar
baz
यदि आपने hlsearch
सक्षम किया है और आप हर जगह हाइलाइट किए गए स्थानों के साथ अपनी स्क्रीन को अव्यवस्थित नहीं करना चाहते हैं, तो आप इससे बचने के लिए निम्नलिखित की तरह थोड़ा फ़ंक्शन लिख सकते हैं:
function! SplitLineNicely()
" Save previous value of last search register
let saved_last_search_pattern = @/
" :substitute replaces the content of the search register with the `\s\+`
" pattern highlighting all whitespaces in the file
substitute /\s\+/\r/g
" Restore previous search register
let @/ = saved_last_search_pattern
endfunction
\r
, देखें :help s/\r
। यह एक शाब्दिक newline टाइपिंग द्वारा प्रतिस्थापित किया जा सकता है <c-v><cr>
। इस संदर्भ \n
में एक अशक्त चरित्र है, देखें :help s/\n
।
replaces the content of the register
- कौन सा रजिस्टर?
vim
अपने काम को पूरा करने के बेहतर तरीकों में से एक है प्रतिस्थापन का उपयोग करना , लेकिन आप एक मैक्रो का भी उपयोग कर सकते हैं। मान लें कि हमारे पास निम्न डेटा है, पंक्ति 1 पर कहीं कर्सर के साथ:
1 a b c d e f
~
सामान्य मोड में शुरू, मारने qqसे मैक्रो कॉल करने योग्य रिकॉर्डिंग शुरू हो जाएगी @q। बाद में टाइप की गई qqकिसी भी चीज को पूर्वोक्त कॉल के माध्यम से दोहराया जा सकेगा। हमारा लक्ष्य सामान्य आदेशों को दर्ज करना है जो सहज पुनरावृत्ति की अनुमति देने के लिए पर्याप्त सामान्य होंगे।
इस प्रकार, हम 0कर्सर को लाइन की शुरुआत में लाने के लिए टाइप कर सकते हैं , फिर fspaceकर्सर को पहले स्थान पर ले जाने के लिए। यह हमें तब टाइप करने की अनुमति देता है renter, जिसके परिणामस्वरूप:
1 a
2 b c d e f
~
qअब हिट करना एक अच्छा विचार है क्योंकि हमारी पुन: प्रयोज्य मैक्रो दोहराव के लिए तैयार है। कुछ हद तक मनमाने ढंग से, हम ध्यान दें कि नई जगह को बदलने के लिए 4 स्थान बचे हैं। इस प्रकार, मारने से 4@q, हम q
4 बार दोहराते हैं, जिसके परिणामस्वरूप:
1 a
2 b
3 c
4 d
5 e
6 f
~
ध्यान दें कि जिस तरह से हम मैक्रो की स्थापना की है, यह सुरक्षित 9000 से अधिक बार आदेश को दोहराने के लिए, के रूप में यह केवल वर्तमान पंक्ति को प्रभावित करती है हो गया होता, और के बाद से वहाँ पिछले डेटा प्रविष्टि के अधिकार के लिए कोई रिक्त स्थान थे, fspaceहोगा 'अच्छी तरह से' विफल, डेटा को नई सुर्खियों से बदलने से रोक रहा है।
इसलिए शुरुआत से दोहराना:
qq0fspacerenterq9001@q
हमारा परिणाम प्रदान करता है।
9001
आपके उपयोगकर्ता नाम को तेज़ी से टाइप करने के लिए आपके पास एक कुंजी है।
विम में लाइनों को विभाजित करने का सबसे आसान तरीका सामान्य मोड कमांड है gq
(सामान्य या दृश्य मोड में त्वरित उत्तराधिकार में दोनों अक्षर टाइप करें)।
दृश्य मोड में, जो कुछ भी चुना गया है, वह विभाजित हो जाएगा, सामान्य मोड में, आप gq
एक गति के साथ अनुसरण करते हैं।
उदाहरण के लिए, gql
वर्तमान में निर्धारित चौड़ाई में एक पंक्ति को विभाजित करेगा। अपनी वर्तमान सेटिंग से अलग होने के लिए विभाजित लाइनों की चौड़ाई निर्धारित करने के लिए, आप उपयोग कर सकते हैं :set textwidth=n
, जहां n
आप एक पंक्ति में जितने वर्ण चाहते हैं, उदाहरण के लिए, 10
और जब आप काम कर रहे हों तो अपनी सामान्य चौड़ाई में वापस बदल सकते हैं।
Kholidfu द्वारा एक Youtube वीडियो की इस जानकारी को प्राप्त किया गया है जिसमें दिखाया गया है कि गति का उपयोग करके सामान्य मोड में लाइनों को कैसे जोड़ा और विभाजित किया जाए।