2011-03-29 16 views
41

के अंदर जल्दी से घूमें मेरे पास शब्द-लपेट सक्षम है और इसमें काफी लंबी रेखाएं हैं। लेकिन एक पंक्ति के अंदर चारों ओर घूमना जो वास्तव में "डब्ल्यू" के साथ 4 लाइनें ऊंची है, वह बोझिल है। मैं जिस शब्द की तलाश में हूं, उस पर कूदने के लिए मैं उपयोग करता/करती हूं, लेकिन ऐसा लगता है कि यह थोड़ा अधिक है।विम: लंबी लाइन

किसी भी पंक्ति के अंदर और तेज़ी से आगे बढ़ने के तरीके पर कोई संकेत?

धन्यवाद,

MRB

उत्तर

77
  • आप $, 0, और ^ लाइन अंतिम बिंदुओं को ले जाने और उसके बाद w और b उपयोग करने के लिए उपयोग कर सकते हैं। साथ ही, w और b पर एक संख्यात्मक तर्क जोड़ना प्रक्रिया को तेज कर सकता है, इसलिए w के बजाय 6w का उपयोग करके आपको कहां होना चाहिए।
  • व्यक्तिगत वर्णों में जाने के लिए f और t का उपयोग करने से भी मदद मिलेगी। (मैं इस विराम चिह्न के साथ आम तौर पर इस्तेमाल करते हैं।, उदाहरण के लिए, मैं एक लंबे समय तक लाइन पर चार वाक्य है 2f. दूसरे वाक्य के अंत के लिए जाना जाएगा)
  • का उपयोग ( और ) कुंजी एक वैकल्पिक तरीका पूरे वाक्य नेविगेट करने के लिए कर रहे हैं।
  • लंबी लाइनों को कई लाइनों में विभाजित करना (मैन्युअल रूप से, या set tw=72 [या 80] के साथ) उन्हें संपादित करना आसान हो सकता है। आप J के साथ बाद में उनसे जुड़ सकते हैं।
  • कुछ जो मैंने अभी खोजा है, आप प्रदर्शित gj और gk का उपयोग करके लाइन को ऊपर और नीचे ले जा सकते हैं। इस तरह, आप अपनी एक लिपटे लाइन को कई लाइनों के रूप में देख सकते हैं।

यदि आप जिस प्रकार के डेटा को संपादित कर रहे हैं उस पर टिप्पणी करते हैं, तो यह हमारे लिए सुझाव देना आसान बना सकता है।

+2

, तो मैं रूप में अच्छी तरह से मेरे सुझाव जोड़े और अपने खुद के जवाब हटा दिया है। +1 –

+13

जीजे, जीके टिप के लिए धन्यवाद। –

+8

दोनों 'जीजे' और' जीके 'समकक्ष तीर के साथ भी पूरा किए जा सकते हैं, यानी' जी 'और 'जी '। आपका बहुत बहुत धन्यवाद! – alexm

5

आप वाक्य द्वारा नेविगेट करने के लिए ( और ) का उपयोग कर सकते हैं; यह सिर्फ . के लिए देखता है, लेकिन यह बेहद सहायक हो सकता है, खासकर अगर आपको वाक्य पसंद नहीं है और इसे बदलना चाहते हैं: (c) वर्तमान वाक्य की शुरुआत में कूद जाएगा, फिर पूरे वाक्य को बदलें।

आप शब्दों को स्थानांतरित करने के लिए w और e, गिनती संशोधक के साथ भी उपयोग कर सकते हैं। 3w एक समय में तीन शब्दों को स्थानांतरित करेगा।

आप एक विशिष्ट चरित्र के लिए आगे और पीछे की ओर देखने के लिए f और F का भी उपयोग कर सकते हैं। यदि आप या syzygythe से अधिक शब्द ढूंढ रहे हैं तो यह अधिक उपयोगी है। :)

2

आप आसपास WB साथ कि अगले अंतरिक्ष :) दस्तावेज़ के अंत पर G चाल को छोड़ देगा स्थानांतरित कर सकते हैं

19

मुझे लगता है कि आप और जी जे बजाय सिर्फ k की जी से फायदा हो सकता है और ञ।

इसके अलावा कुछ विकल्प हैं कि आप अगले सर्वश्रेष्ठ शारीरिक चरित्र के लिए कर्सर flicking के बिना 'शून्य' क्षेत्रों के माध्यम से कर्सर के लिए अनुमति देने के लिए 'virtualedit' को देखो।

आप करना चाह सकते हैं (अस्थायी रूप से)

nnoremap <buffer> k gk 
nnoremap <buffer> j gj 

बाहर छोड़ दें <buffer> हिस्सा इस विश्व स्तर पर लागू करने के लिए।

+0

यह वह समाधान है जिसका मैं उपयोग करता हूं। बहुत ही सुविधाजनक। ऊपर और नीचे तीर अभी भी पिछले और अगले वास्तविक रेखा पर जाने के पारंपरिक व्यवहार को बनाए रखता है। – gotgenes

3

मैंने हाल ही में एक प्लगइन का उपयोग करना शुरू किया है जो मुझे एक रेखा (या छेद फ़ाइल) के अंदर बहुत जल्दी स्थानांतरित करने के लिए वास्तव में अच्छा लगता है।

प्लगइन का नाम प्रीसीजजंप है और आप इसे here पा सकते हैं।

जब आप इस प्लगइन का उपयोग करते हैं तो यह मैपिंग _f और _F में परिभाषित करता है।

यदि आप x के बाद _f टाइप करते हैं तो यह सभी एक्स वर्णों को हाइलाइट करेगा और अस्थायी रूप से अन्य वर्णों के साथ प्रतिस्थापित करेगा जिन्हें आप उस स्थान पर जाने के लिए दबा सकते हैं। एक चित्रण के लिए स्क्रिप्ट पेज की जांच करें।

5

आप इन remapping के मार्ग से जाने के लिए चुनते हैं:

nnoremap 0 g0 
nnoremap $ g$ 
nnoremap^g^ 
4

मेरे पसंदीदा रणनीति, जबकि चारों ओर लंबी लाइनों कूद उपयोग करने के लिए है:

nnoremap k gk 
nnoremap j gj 
यहाँ

उसी तर्ज पर एक जोड़े को अन्य हैं fF और tT चरित्र पर शून्य में। क्या गतियों supercharged के इस परिवार है कि आप ; और , गतियों का उपयोग कर सकते हैं, ताकि आप कर्सर को चरित्र रिश्तेदार की स्थिति को गिनती की जरूरत नहीं है, लेकिन सिर्फ उन के माध्यम से कदम ( '". साथ अत्यंत उपयोगी है बनाता है आदि)

मान लीजिए कि हम एक लाइन करते हैं:

reallyLongObjectName.longMethod().prettyPrettyLongMethod().burp(); 

हम लाइन की शुरुआत से, करने के लिए, कहते हैं कूद करने के तीसरे डॉट की जरूरत है, हम उपयोग कर सकते हैं या तो 3f. या f.;; का दौरा तीसरे स्थान पर दो बिंदु और लैंडिंग।

जबकि ;, शैली अधिक कीस्ट्रोक का उपयोग कर सकती है, मैंने इसे अधिक चुस्त और मजेदार पाया।

2

कृपया ध्यान दें कि ऊपर या नीचे तीर के बाद "g" का उपयोग करके वास्तव में ठीक काम करता है, लेकिन यदि आपके पास लंबी लाइनें हैं और जल्दी से स्थानांतरित हो जाएं तो आप गलती से "gg" दर्ज कर सकते हैं और टेक्स्ट के शीर्ष पर अंत-अप कर सकते हैं .. ।! (पूर्ववत आपको वापस नहीं लाएगा, और AFAIK वहां पर जाने के लिए एक-महत्वपूर्ण दबाव नहीं है।)

यह मेरे साथ कई बार हुआ।

मैं क्या किया था, और मैं तुम्हें, संशोधित करने के लिए (या बनाने के) अपने "~/.vimrc" और इन दो पंक्तियों को जोड़ने का सुझाव:

map <C-Up> g<Up> 
map <C-Down> g<Down> 

यह आप नियंत्रित हुआ और नियंत्रण मैप कर देंगे आंदोलनों के आदेश के लिए नीचे। गलत "जीजी" गलत बना देगा और लंबी लाइनों के चारों ओर स्थानांतरित करने के लिए नियंत्रण-दाएं और नियंत्रण-बाएं के साथ पूरी तरह से सुसंगत है।

यदि आप इन अन्य दो पंक्तियों को जोड़ते हैं, तो आप उसी आदेश को सम्मिलित मोड में उपयोग कर सकते हैं (!)

imap <C-Up> <C-[> g<Up> i 
imap <C-Down> <C-[> g<Down> i 

(विम मैं आपका जवाब सबसे ज्यादा पसंद बहुत अच्छा है!)

ग्रेग Ruo

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