vim कट और पेस्ट इतिहास


60

जब मैं व्यर्थ में in कटिंग ’कर रहा होता हूं, तो मुझे विश्वास होता है कि रजिस्टर हैं जो हाल ही में काटे गए सभी चीजों का इतिहास रखते हैं। मैं उन रजिस्टरों का उपयोग कैसे करूं?

उदाहरण के लिए, मान लें कि मैंने इनमें से प्रत्येक को लगातार काट दिया

  • 'नमस्ते'
  • 'विश्व'
  • 'तथा'
  • 'विम'

ध्यान दें कि मैं वास्तव में इन संपादनों को विशेष रजिस्टर में नहीं सहेज रहा हूं, मैं लगातार चार बार 'डी' का उपयोग कर रहा हूं।

जवाबों:


102

The

: रजिस्टर की मदद

कमांड से पता चलता है कि 10 गिने हुए रजिस्टर ( "0को "9) हैं।

रजिस्टर "0सबसे हाल ही में बात है yanked ; रजिस्टर "1में सबसे हाल ही में डिलीट किया गया टेक्स्ट है, "2पिछले डिलीट को रजिस्टर करें, उसके पहले डिलीट भी"3 हो सकता है।

आप बदले में प्रत्येक पंक्ति को हटाते हैं, रजिस्टरों "1, "2, "3और "4, "विम" में शामिल होंगे, "और", "दुनिया" और "हैलो" क्रमशः।

:reg(या :registers) कमांड का उपयोग करके आप इसे सत्यापित कर सकते हैं :

:reg
""   Vim^J
"1   Vim^J
"2   And^J
"3   World^J
"4   Hello^J

इसलिए एक समय में चार लाइनों को हटाने के बाद, आप दूसरी पंक्ति ("विश्व") को पुनर्प्राप्त कर सकते हैं

"3p

क्योंकि यह तीसरा सबसे हालिया विलोपन है।


यह पूर्ण है; हालाँकि, मुझे सबसे हाल का 'यांकित' पाठ क्या चाहिए?
एलेक्सी

तो आप उपयोग करेंगे: p (जिसका अर्थ "
0p

1
विशेष रजिस्टरों पर भी ध्यान दें, खासकर "*" और "+", जब आप पढ़ते हैं :help registersबहुत उपयोगी है।
डैनियल एंडरसन

3
भगवान, आप हर दिन कुछ नया सीखते हैं। यह बहुत अच्छा है। धन्यवाद, @njd
एलएलआईओटीटीसीएबल

3
यह उत्तर एक महत्वपूर्ण विवरण को छोड़ देता है: इतिहास में इस तरह से केवल एक पंक्ति या अधिक को हटा दिया जाता है। यदि आप ओपी को प्रश्न में वर्णित तरीके से हटाते हैं ( dचार बार का उपयोग करके dd), तो सभी लेकिन अंतिम हटाए गए एक खो जाते हैं।
अलेक्जेंडर रेचस्टीनर

8

Njd के उत्तर के अलावा, इसे YankRing plugin से सरल बनाया जा सकता है । पिछले यंक्स को ब्राउज़ करने में आसान बनाने के साथ-साथ, आप पिछले स्टैम्प को 'स्टैक' से पॉप करने की अनुमति देने के लिए कुछ कुंजियों को कॉन्फ़िगर कर सकते हैं। यह आपको करने की अनुमति देता है:

yy    " Copy first line
yy    " Copy second line
yy    " Copy third line
yy    " Copy fourth line
" Assumes you've mapped ,p to be the pop command: choose your preferred key or key-combination
,p    " Paste fourth line and pop it off the Yank Ring
,p    " Paste third line and pop it off the Yank Ring
,p    " Paste second line and pop it off the Yank Ring
,p    " Paste first line and pop it off the Yank Ring

4
क्या आप जोड़ सकते हैं कि ,pपिछले यान को पॉप करने के लिए कैसे मैप करें?
एंड्रयू वुड
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.