Vim में फ़ाइल के अंत में कर्सर ले जाएँ


409

जब मैं चाहता हूं कि कर्सर विम के फ़ाइल (यानी अंतिम पंक्ति के अंत) में जाए, तो मुझे छह कीस्ट्रोक्स टाइप करने होंगे:

<ESC>G$a- जो मेरे कीबोर्ड लेआउट पर ESC+ Shiftg+ Shift4+ का अनुवाद करता है a

मैं इसे और अधिक कुशलता से कैसे कर सकता हूं?

चूंकि मैं नियमित रूप से कई अलग-अलग मशीनों पर काम करता हूं, इसलिए मैं हमेशा बदल नहीं सकता हूं ।imimrc, इसलिए मैं उस फ़ाइल को संपादित करने या बनाने के बिना उत्तर की तलाश कर रहा हूं।


8
बस इंगित करना चाहते हैं <esc>G$a, आपके द्वारा दिखाए जा रहे कमांड निम्नानुसार दर्शाए जाने चाहिए:, आप पत्र को अपरकेस बनाकर शिफ्ट दिखाते हैं। और आप $Shift + 4 के बजाय दिखाते हैं , क्योंकि कोई फर्क नहीं पड़ता कि कीबोर्ड इस कुंजी ( $) का फ़ंक्शन नहीं बदलेगा, लेकिन यदि आप Shift + 4 करते हैं तो अर्थ बदल सकता है। :)
greduan

3
@ ईडुआन मैं आमतौर पर सहमत हूं, लेकिन इस मामले में वास्तविक कीपेस भी प्रासंगिक हैं। मैंने दोनों को जोड़ दिया :-)
timss

@Eduan दक्षता के सवाल के लिए, वास्तविक आदेश मायने नहीं रखते। कीस्ट्रोक्स करते हैं। और चूंकि भाषाओं के बीच कीबोर्ड लेआउट में भारी अंतर हैं, मुझे नहीं पता कि $यूएस कीबोर्ड पर कहां है, और यह अच्छी तरह से हो सकता है कि अमेरिकियों के लिए कमांड $में प्रवेश करना सिर्फ एक कीस्ट्रोक है। मैं स्पष्ट रूप से यह दिखाना चाहता था कि मेरे लिए (एक जर्मन कीबोर्ड के साथ) यह दो कीस्ट्रोक्स है।

1
@ क्या आई.सी. मैं समझ सकता हूँ। बस इसे इंगित करना चाहते थे ताकि भविष्य में आपको पता चले। :)
18

जवाबों:


410

aउपयोग करने से पहले स्पष्ट रूप से लाइन के अंत तक जाने की आवश्यकता नहीं है , उपयोग करें A;
पंक्ति के अंत में पाठ को गिनें [गिनती] बार

<ESC>GA


3
यदि आप सामान्य मोड में रहना चाहते हैं G)(या <ESC>G)यदि आप इंसर्ट मोड में हैं और अंतिम वर्ण पर सामान्य मोड में समाप्त करना चाहते हैं)। कीस्ट्रोक्स की समान संख्या, लेकिन इन्सर्ट मोड के बजाय सामान्य मोड में समाप्त करने के लिए। मुझे यह कभी-कभार उपयोगी लगता है जब मैं सम्मिलित मोड कमांड या संपादन के बजाय अंतिम शब्द पर कुछ सामान्य कमांड चलाना चाहता हूं।
अलेजांद्रो

1
@Alejandro उपयोगी है, )पर चाल [count]आगे वाक्य और इसलिए पंक्ति के अंत में अगर उदाहरण के लिए अंतिम पंक्ति है नहीं जाना होगा This is a test. Foo bar.। यह हालांकि बहुत सारे कोड के लिए काम करेगा, जिसे अक्सर वाक्य नहीं माना जाता है और इसलिए वैसे भी अंत तक जाएगा।
समयसीमा

यदि आप अगली पंक्ति को लिखने की योजना बनाते हैं, <ESC> G oतो गाड़ी वापस कर देंगे और आपको अगली पंक्ति (फ़ाइल के अंत में) को सम्मिलित मोड में डाल देंगे, एक जोड़े को और अधिक कीस्ट्रोक्स बचाएंगे।
Broc.seib 6

1
इसके अलावा, यदि आप मोड उपयोग सम्मिलित करने के लिए स्विच नहीं करना चाहते हैं G$
ब्लेडमाइट

498

यह तेज है। बस इस का उपयोग करें

:$

16
यह अंतिम कॉलम में केवल अंतिम पंक्ति तक नहीं जाता है
राजेश्वर

6
यदि आप बस जल्दी से फ़ाइल के अंत में जाना चाहते हैं और आपके कीबोर्ड शॉर्टकट गड़बड़ हो गए हैं, तो यह सही कमांड है। धन्यवाद!
joemar.ct

9
: $ + एंड उस मामले में ऐसा करेगा।
कार्तिक

1
इसके लिए अंत में <ENTER> के साथ-साथ उस पंक्ति के अंत तक पहुंचने की आवश्यकता होती है जो इसे जल्दी नहीं बनाता है।
एलेजांद्रो

1
: $ चाल करता है! सवाल के रूप में फ़ाइल के अंत में जा रहा है! धन्यवाद
सिजान श्रेष्ठ

130

मारो Escऔर फिर दबाओ: Shift+G


3
यह अंतिम पंक्ति की शुरुआत में जाता है, फ़ाइल के अंत में नहीं।
जॉर्डन

5
यह मेरे लिए फाइल के अंत में जाता है , और एक अच्छा आसान कीबाइंड भी है
याकूब गार्बी

G कॉलम संख्या को समान रखता है (यदि संभव हो) और अंतिम पंक्ति में जाता है। जैकब शायद लाइन के अंत में था, और कमांड चलाते समय सामने जॉर्डन।
run_the_race

39

शुरुआत के लिए, वापसी की कोई आवश्यकता नहीं है। G$करूँगा। और आप एक सामान्य मोड कमांड की लंबाई <Esc>और गिनती के आधार पर भ्रमित कर रहे हैं a

हालाँकि, आप उपयोग कर सकते हैं Ctrl+ Endयदि आप चाहें।


8
यहCtrl-END
जूनो

मैंने Endअपने कीबोर्ड पर -केय नहीं है (यदि ऐसा है तो आपका मतलब है)।

वास्तव में, TIMSS शो द्वारा जवाब मैं अच्छी तरह से गिनती कि था <ESC>और a, क्योंकि वह या वह एक तरह से बदलने के लिए की जानता था Shift+$, aके साथ A

1
@ सबसे अधिक लैपटॉप कीबोर्ड आजकल घर / अंत में ऊपर / नीचे / बाएं / दाएं के साथ
एफएन

22

मैंने सोचा था कि प्रश्न "विम में फ़ाइल के अंत में कर्सर को स्थानांतरित करें"?

फ़ाइल का अंत: Esc+ G
आरंभ-का-फ़ाइल Esc+ g(या ggयदि आप पहले से कमांड क्षेत्र में हैं)


21

फ़ाइल की अंतिम पंक्ति में जाने का सबसे अच्छा तरीका है G। यह कर्सर को फ़ाइल की अंतिम पंक्ति में ले जाएगा।

लाइन में अंतिम कॉलम में जाने का सबसे अच्छा तरीका है $। यह कर्सर को वर्तमान लाइन के अंतिम कॉलम में ले जाएगा।

तो बस G$आप फ़ाइल के अंत और अंतिम पंक्ति के लिए कर रहे हैं।

और अगर आप फ़ाइल के अंत में इन्सर्ट मोड डालना चाहते हैं तो आप बस करें GA। ऐसा करने से आप फ़ाइल की अंतिम पंक्ति पर जाते हैं, और अंतिम कॉलम में जोड़कर इन्सर्ट मोड दर्ज करते हैं। :)



11

यदि आप अगली पंक्ति को लिखने की योजना बनाते हैं, ESCGoतो गाड़ी वापस कर देंगे और आपको अगली पंक्ति (फ़ाइल के अंत में) को सम्मिलित मोड में डाल देंगे, एक जोड़े को और अधिक कीस्ट्रोक्स बचाएंगे।


6
  • Ctrl + Home = फ़ाइल शुरू करने के लिए कूदो
  • Ctrl + End = फ़ाइल के अंत में कूदें

3

यह जल्दी है:

<ESC>GA

5
डुप्लिकेट उत्तर क्यों पोस्ट करें, खासकर जब यह व्याख्या नहीं करता है A?
टिम

3

आप इसे एक कुंजी के लिए मैप कर सकते हैं, उदाहरण के लिए F3, इन .vimrc

inoremap <F3> <Esc>GA

2
जबकि संभव है, यह आमतौर पर एक बुरा विचार है। इसके बजाय मांसपेशी स्मृति और उपयोग GAया के लिए लक्ष्य G$
टिस्स

मैं अभी भी 1 कुंजी स्ट्रोक के साथ जीत रहा हूं: :) अधिक गंभीर नोट पर, अगर आपको वास्तव में तेजी से कुछ चाहिए, तो .vrc कैसे उपयोगी है, यह सीखना।
टिम

ओपी को इसे देखने के लिए कहने के बजाय पूरा नक्शा उदाहरण देना अच्छा होगा। यदि आप यह नहीं पा सकते हैं कि ओपी को कैसे माना जाता है?
FDinoff

1
आप कुछ भी नहीं जीत रहे हैं क्योंकि आपको अपने घर से दूर जाना होगा। इसके अतिरिक्त, यदि आप इसका उपयोग करते हैं, तो आप किसी को विन्यास या यहां तक ​​कि vi का उपयोग नहीं कर सकते। आप वास्तव में किसी भी समय नहीं बचा रहे हैं। यदि कुछ हो, तो C-endउल्लुओं द्वारा बताए अनुसार उपयोग करें ।
टिम्स

मैं यहां टिप्पणियों से सहमत हूं, लेकिन मैंने आपके लिए मैपिंग को साफ किया
डी। बेन नोबल

0

मैं एक पंक्ति के अंत में कर्सर को स्थानांतरित करने के तरीके की तलाश कर रहा हूं और फिर एक मैक टर्मिनल पर संपादित करता हूं, यहां बताया गया था कि यह मेरे लिए कैसे काम करता है। अपने संपादन मोड से बाहर निकलें, g_ में टाइप करें (यह 'g' है, फिर सामने की तरफ कोई बृहदान्त्र नहीं है), फिर बस 'a' कुंजी दबाएं ताकि आप अपनी स्क्रिप्ट में "ऐड" कोड डाल सकें।


क्या आप शायद ढूंढ रहे थे A?
डी। बेन नोबल

मैंने ए की कोशिश की है, लेकिन यह काफी काम नहीं किया
झीनी जियांग

यह अजीब है, Aमूल रूप से बराबर है$a
डी। बेन नोबल

0

एक अन्य विकल्प:

:call cursor('.',strwidth(getline('.')))

यदि आप कोई फ़ंक्शन लिख रहे हैं तो यह उपयोगी हो सकता है। एक और स्थिति होगी जब मुझे एक विशिष्ट टेम्पलेट खोलने और पहली पंक्ति के अंत में कूदने की आवश्यकता होगी, मैं कर सकता हूं:

vi +"call cursor('.',strwidth(getline(1)))"  notetaking_template.txt

उपरोक्त के साथ भी किया जा सकता है

vi +"execute ':normal! $'" notetaking_template.txt

यह सभी देखें:

vim - वर्तमान रेखा की लंबाई प्राप्त करें


0

यदि आप फ़ाइल प्रकार के अंत में कुछ क्लिपबोर्ड सामग्री चिपकाना चाहते हैं:

:$ put +

$ ............ last line
put .......... paste 
+ ............ clipboard
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.