2010-08-18 13 views
9

मैं अब कई महीनों के लिए विम का उपयोग कर रहा हूं और मुझे कर्सर से सब कुछ बदलने और हटाने के लिए सी और डी का उपयोग करने के लिए उपयोग किया गया है।वाई वही काम क्यों करता है?

नीचे जहां कर्सर 'बार' में 'बी' पर है लाइन पर विचार करें:

foo.bar("hello world") 

इस बिंदु पर डी साधते निकलेगा: सी मार करेंगे

foo. 

जबकि अवधि के बाद कर्सर के साथ एक ही प्लस डालने मोड शुरू करें।

हालांकि, वाई दबाकर सहजता से समान चीज नहीं होती है (कर्सर से सबकुछ को लाइन के अंत तक कॉपी करना)। इसके बजाए, यह पूरी लाइन की प्रतिलिपि बनाता है (बस yy की तरह)।

मैं वाई को पूरे लाइन की प्रतिलिपि बनाने के बजाय कर्सर से वर्णों की प्रतिलिपि कैसे बना सकता हूं?

+1

यह प्रश्न भी पूछा गया है [vi/Vim स्टैक एक्सचेंज पर] (http://vi.stackexchange.com/q/6061/4676); आप उत्तर को और अधिक उपयोगी पाते हैं क्योंकि वे * "क्यों" समायोजित करते हैं, * केवल "इसे कैसे समायोजित करें" * के बजाय बेहतर तरीके से संबोधित करते हैं। – Wildcard

उत्तर

4

nmap Y y$

है कि तुम क्या चाहते हो रहा है?

संपादित

कारण के रूप में yy शायद इस के साथ क्या करने के लिए कुछ नहीं है यही कारण है कि वाई एक ही बात करता है:

{Visual}["x]y   Yank the highlighted text [into register x] (for 
         {Visual} see |Visual-mode|). {not in Vi} 

                 *v_Y* 
{Visual}["x]Y   Yank the highlighted lines [into register x] (for 
         {Visual} see |Visual-mode|). {not in Vi} 

वाई तर्ज पर कार्य करने के लिए है, वाई पर कार्रवाई करने के लिए है व्यक्तिगत पात्र?

+0

धन्यवाद! कोई विचार क्यों 'वाई'' सी' और 'डी' के समान व्यवहार नहीं करता है? – advait

+0

@advait संपादित देखें। वास्तव में हालांकि यकीन नहीं है। ब्रायन सही हो सकता है - शायद ऐतिहासिक कारणों से हो सकता है। –

7

this configuration से:

" make Y effect to end of line instead of whole line 
map Y y$ 

मुझे लगता है डिफ़ॉल्ट व्यवहार बस कुछ ऐतिहासिक विसंगति के कारण है।

संबंधित मुद्दे