मैं कैसे में एक पूरी लाइन नकल करते विम करने के लिए एक समान तरीके से Ctrl+ DIntelliJ विचार / Resharper में या Ctrl+ Alt+ ↑/ ↓में ग्रहण ?
Y
es P
पट्टा। :)
मैं कैसे में एक पूरी लाइन नकल करते विम करने के लिए एक समान तरीके से Ctrl+ DIntelliJ विचार / Resharper में या Ctrl+ Alt+ ↑/ ↓में ग्रहण ?
Y
es P
पट्टा। :)
जवाबों:
yyया Yलाइन कॉपी करने के लिए (स्मरक: y ank )
या
ddकरने के लिए घ हटाएं लाइन (विम प्रतियां क्या आप एक में नष्ट कर दिया क्लिपबोर्ड की तरह "रजिस्टर", एक तरह कटौती आपरेशन)
फिर
pकरने के लिए पी aste नकल या पाठ हटाया गया के बाद वर्तमान पंक्ति
या
Pकरने के लिए पी aste नकल या हटाए गए टेक्स्ट से पहले वर्तमान पंक्ति
Y
है y$
। (के साथ संगत D
और C
((लेकिन वीआई संगत नहीं (कोई परवाह नहीं है।))) यह भी प्रस्तावित है :help Y
।
yj
या yk
, खासकर जब से आप एक चरित्र पर दोगुना नहीं करते हैं। इसके अलावा, yk
एक बैकवर्ड संस्करण है जो 2yy
ऐसा नहीं कर सकता है, और आप पीछे की ओर y9j
या y2k
आदि में पहुंचने के लिए लाइनों की संख्या डाल सकते हैं । केवल अंतर यह है कि आपकी गिनती n-1
कुल n
लाइनों के लिए होनी चाहिए , लेकिन आपका सिर यह सीख सकता है वैसे भी।
सामान्य मोड: अन्य उत्तर देखें।
पूर्व जिस तरह से:
:t.
लाइन को डुप्लिकेट करेगा,:t 7
लाइन 7 के बाद इसे कॉपी करेंगे,:,+t0
फ़ाइल की शुरुआत में वर्तमान और अगली पंक्ति की नकल करेगा ( ,+
सीमा का एक पर्याय है .,.+1
),:1,t$
शुरू से अंत तक कर्सर की स्थिति तक पंक्तियों की प्रतिलिपि 1,
बनाएंगे ( रेंज का एक पर्याय है 1,.
)।यदि आपको नकल करने के बजाय स्थानांतरित करने की आवश्यकता है, तो :m
इसके बजाय का उपयोग करें :t
।
यह वास्तव में शक्तिशाली हो सकता है यदि आप इसे साथ जोड़ते हैं :g
या :v
:
:v/foo/m$
फ़ाइल के अंत में पैटर्न "फू" का मिलान नहीं करने वाली सभी लाइनों को स्थानांतरित करेगा।:+,$g/^\s*class\s\+\i\+/t.
class xxx
कर्सर के ठीक बाद फॉर्म की सभी बाद की पंक्तियों को कॉपी करेगा ।संदर्भ: :help range
, :help :t
, :help :g
, :help :m
और:help :v
:
विजुअल मोड में प्रेस करते हैं , '<,'>
तो यह रूपांतरित हो जाता है, इसलिए यह लाइन का चयन करता है, जिसमें दृश्य चयन पर लाइन होती है। तो, दृश्य मोड में, :t0
शुरुआत में लाइनों की नकल करेंगे।
:t.
सवाल का सटीक जवाब है।
YP
या Yp
या yyp
।
Y
y$
हालांकि (यथा (वर्तमान कर्सर स्थिति से, लाइन की शुरुआत नहीं)) के अंत तक (यांक (कॉपी) का रीमेक किया जाता है । इस पंक्ति के साथ .vimrc
::nnoremap Y y$
yyP
इस से कोई सरल नहीं मिलता है! सामान्य मोड से:
yy
फिर उस पंक्ति पर जाएं जिसे आप चिपकाना चाहते हैं और
p
yy
इसे हटाए बिना वर्तमान लाइन को yank करेगा
dd
वर्तमान लाइन को हटा देगा
p
put
पिछले विधियों में से किसी एक रेखा को पकड़ा जाएगा
यह करो:
सबसे पहले, yyवर्तमान लाइन की प्रतिलिपि बनाएँ, और फिर pपेस्ट करें।
यदि आप दूसरा रास्ता चाहते हैं:
"ayy
: यह बफर में लाइन को स्टोर करेगा a
।
"ap
: यह बफर की सामग्री डाल देगा a
को कर्सर पर ।
इस पर कई विविधताएँ हैं।
"a5yy
: यह बफर में 5 लाइनों को स्टोर करेगा a
।
अधिक मज़ा के लिए " विम मदद फ़ाइलें देखें ।
yyp - "yippee!"
बीच में एक नंबर के साथ कई लाइनें:
y7yp
:.,.+7 copy .+7
: P
मुझे पसंद है: Shift+ v(तुरंत पूरी लाइन का चयन करने के लिए और यदि आप चाहें तो अन्य लाइनों का चयन करें), y, p
आप <Cx> <Cl> भी सम्मिलित कर सकते हैं, जो पिछली पंक्ति को इन्सर्ट मोड से दोहराएगा और आपको सभी लाइनों के साथ एक पूर्ण विंडो लाएगा। यह लगभग <Cp> की तरह काम करता है
किसी के लिए जो vi नहीं जानता है, ऊपर से कुछ जवाब उसे "पेस्ट ... वर्तमान लाइन के बाद / पहले" जैसे वाक्यांशों के साथ गुमराह कर सकते हैं ।
यह वास्तव में "पेस्ट ... के बाद / कर्सर से पहले " है।
yyया Yलाइन कॉपी करने के लिए
या
dd लाइन को हटाने के लिए
फिर
pनकल या नष्ट कर दिया पाठ चिपकाने के लिए के बाद कर्सर
या
Pकॉपी किया या नष्ट कर दिया पाठ चिपकाने के लिए पहले कर्सर
अधिक महत्वपूर्ण बाइंडिंग के लिए, आप इस साइट पर जा सकते हैं: vi पूर्ण कुंजी बंधन सूची
डिफ़ॉल्ट है yyp, लेकिन मैं एक साल से इस रिबॉन्डिंग का उपयोग कर रहा हूं और इसे प्यार करता हूं:
" set Y to duplicate lines, works in visual mode as well.
nnoremap Y yyp
vnoremap Y y`>pgv
मुझे पता है कि मुझे पार्टी में देर हो रही है, लेकिन जो भी हो; मेरे पास मेरे .vimrc में है:
nnoremap <C-d> :copy .<CR>
vnoremap <C-d> :copy '><CR>
:copy
आदेश सिर्फ प्रतियां चयनित लाइन या श्रेणी (हमेशा पूरे लाइनों) के लिए नीचे लाइन नंबर अपने तर्क के रूप में दिए गए।
सामान्य मोड में यह क्या करता है copy .
इस लाइन को इस लाइन के ठीक नीचे कॉपी करें ।
और दृश्य मोड में यह चयन की शुरुआत से लेकर चयन के अंत तक चयन के अंत से नीचे की रेखा में बदल जाता है'<,'> copy '>
।
Vi सीखने के लिए शुरू करने वालों के लिए, यहाँ एक अच्छा परिचय है, जो कि vi के साथ-साथ विशिष्ट Windows GUI एडिटर कर्सर मूवमेंट और शॉर्टकट कुंजियों की ओर से सूचीबद्ध है। यह yy(कॉपी लाइन) और p(के बाद पेस्ट ) सहित सभी मूल आदेशों को सूचीबद्ध करता है याP ।
यदि आप किसी पंक्ति को डुप्लिकेट करना चाहते हैं और उसे ठीक उसी तरह से नीचे चिपका सकते हैं जैसे, उदात्त Ctrl+ Shift+ में D, तो आप इसे अपनी .vimrc
फ़ाइल में जोड़ सकते हैं ।
nmap <S-C-d> <Esc>Yp
या, इन्सर्ट मोड के लिए:
imap <S-C-d> <Esc>Ypa
i
फिर से जुड़ने के बाद इसे तोड़ता है undo
, इसलिए इन्सर्ट मोड में डुप्लिकेटिंग लाइनों का समाधान उतना तुच्छ नहीं है जितना लगता है।
imap <S-C-d> <Esc>Ypi
इन्सर्ट मोड और nmap <S-C-d> <Esc>Yp
सामान्य मोड में