मैं *
विम में प्रत्येक पंक्ति के अंत में जोड़ना चाहता हूं ।
मैंने कोड को असफल करने की कोशिश की
:%s/\n/*\n/g
मैं *
विम में प्रत्येक पंक्ति के अंत में जोड़ना चाहता हूं ।
मैंने कोड को असफल करने की कोशिश की
:%s/\n/*\n/g
जवाबों:
g
झंडा अनावश्यक है।
इससे भी कम: खोज आदेश:
:%norm A*
इसका यही अर्थ है:
% = for every line
norm = type the following commands
A* = append '*' to the end of current line
I*
इसके बजाय 0i*
आप एक कीस्ट्रोक को बचाएंगे।
:
, यह उस कमांड को पूर्व-भर देगा :'<,'>
जिसके साथ आप फिर से बना सकते हैं:'<,'>norm A*
I
इसके बजाय का उपयोग करें -:%norm I*
इसके अलावा:
:g/$/norm A*
इसके अलावा:
gg<Ctrl-v>G$A*<Esc>
g
वह global
कमांड है जो प्रत्येक मिलान रेखा के साथ कुछ करता है। $
हर पंक्ति से मेल खाता है। यह ^
या भी हो सकता है .*
। मानदंड उन कमांड को निष्पादित करता है जो आप सामान्य रूप से कमांड मोड में उपयोग करते हैं। तो लाइन के अंत में A*
संलग्न *
का मतलब है ।
मुझे लगता है कि इस प्रकार की चीजों से निपटने के लिए विजुअल ब्लॉक मोड का उपयोग करना बेहतर और अधिक बहुमुखी तरीका है। यहाँ एक उदाहरण है:
This is the First line.
This is the second.
The third.
डालने के लिए "नमस्ते दुनिया।" इनमें से प्रत्येक पंक्ति के अंत में (space + क्लिपबोर्ड):
परिणाम है:
This is the First line. Hello world.
This is the second. Hello world.
The third. Hello world.
(उदाहरण Vim.Wikia.com से )
jj
किसी G
को अंतिम पंक्ति में जाने के लिए मारा जा सकता है । यह बड़ी फ़ाइलों में उपयोगी है, जहां j
अंतिम पंक्ति को दबाने तक आप व्यावहारिक नहीं हैं।
तुम g
अंत में वास्तव में जरूरत नहीं है । तो यह हो जाता है:
:%s/$/*
या यदि आप केवल १४-१ the की *
पंक्तियों के अंत में चाहते हैं :
:14,18s/$/*
या
:14,18norm A*
एक विकल्प है:
:g/$/s//*
यह हर लाइन एन्ड एंकर को ढूंढेगा और उसका विकल्प देगा *
। मैं कहता हूं "स्थानापन्न" लेकिन, वास्तविक तथ्य में, यह एक परिशिष्ट से अधिक है क्योंकि नियमित चरित्र के बजाय एंकर एक विशेष चीज है। अधिक जानकारी के लिए, Power of g - उदाहरण देखें ।
:% S / \ N / * \ r / जी
आपका पहला एक और कहीं भी सही है, लेकिन विम को किसी कारण से अलग-अलग न्यूलाइन को संभालना होगा।
:s///
,\n
एक अशक्त चरित्र से मेल खाती है। अनुभाग:help sub-replace-special
प्रासंगिक है।