मैं विम में (यानी "पूर्ववत करें") कैसे करूँ?


697

विम में, मैंने बहुत अधिक पूर्ववत किया। मैं इसे (कि, फिर से) पूर्ववत कैसे करूँ?


106
जैसा कि मैंने पहले ही 2 करीबी वोट एकत्र किए हैं, मुझे लगता है कि यह यहाँ है क्योंकि विम एक प्रोग्रामर का संपादक है।
फ्लाईबीवायर

28
मैं सहमत हूं, यह प्रोग्रामिंग से संबंधित है और यह एक वास्तविक प्रश्न है।
डिजिटलरॉस

41
यहाँ पर कोई व्यक्ति घूमता है और प्रत्येक Vim प्रश्न को चिन्हित करता है क्योंकि "SU पर निर्भर करता है" क्योंकि समुदाय ने बहुत पहले ही तय कर लिया था कि Vim SO पर है, यह एक प्रोग्रामिंग टूल है।
ब्रायन कार्टर

@ ब्रायन: क्या आपके पास उस दस्तावेज़ का लिंक है जहां यह सहमति बनी थी?
बहुत ज्यादा php

12
meta.stackexchange.com/questions/20251/… लेकिन मुझे याद है यह पिछले साल कुछ समय बाद आ रहा है। विम / एमएसीएस आईडीई हैं। इसके अलावा, दोनों के लिए कॉन्फिग फाइलों में इस्तेमाल की जाने वाली भाषाएं ट्यूरिंग-पूरी स्क्रिप्टिंग लैंग्वेज हैं, इसलिए विम को स्थापित करने का कार्य खुद से शुरू करना है।
ब्रायन कैरियर

जवाबों:


907

Ctrl+r


2
मैं सिर्फ वहाँ पूर्ववत प्लगइन फेंकना चाहूंगा, उस समय के लिए सुपर भयानक जो आपने खुद को पूर्ववत और फिर से भड़काने के साथ खराब कर दिया है।
जेक सेलर्स

3
अगर मैं vi के बारे में पढ़ रहा हूं, तो मेरी उंगलियां सिर्फ अपने आप काम करती हैं। Vi कमांड स्टैकओवरफ्लो पर काम नहीं करते हैं। :-)
ciscogambo

2
मैक उपयोगकर्ताओं पर ध्यान दें: मैक टर्मिनल में Ctrl + r आपके दिन को व्यर्थ में बर्बाद कर देगा। मैक टर्मिनल में उचित कुंजी कॉम्बो को पूर्ववत करने के लिए नहीं जानते, लेकिन यह निश्चित रूप से Ctrl + r नहीं है!
23

@tpartee मैंने macOS के टर्मिनल ऐप के तहत सिर्फ Ctrl + r का उपयोग किया है - यहाँ कोई समस्या नहीं है।
जस

3
शायद @tpartee मतलब है कि Cmd + rचीजों को गड़बड़ करता है? यह निश्चित रूप से कुछ अजीब करता है; लेकिन Ctrl + rमेरे लिए ठीक काम किया (मैक + tmux + vim)
dwanderson

133

यह भी देखें :undolist, जो पूर्ववत इतिहास के माध्यम से कई मार्ग प्रस्तुत करता है। यह बहुत उपयोगी है यदि आप बहुत अधिक पूर्ववत करने के बाद गलती से कुछ टाइप करते हैं।


22
@amindfv: नंबर से :undolistटाइप करें और टाइप करें :undo 178(कहें) फिर से कदम 178 करने के लिए।
पीटर

क्या यह दिखाने का कोई तरीका है कि वास्तव में क्या पूर्ववत रहेगा :undolist?
csharpfolk

2
@csharpfolk undotree प्लगइन का उपयोग करें ( github.com/mbbill/undotree )

54

का उपयोग करें :earlier/ :later। सब कुछ फिर से करने के लिए आपको बस करने की जरूरत है

later 9999999d

(यह मानते हुए कि आपने सबसे पहले 9999999 दिन पहले फ़ाइल को संपादित किया है), या, यदि आपको वर्तमान पूर्ववत स्थिति और क्रमशः एक, उपयोग Nh, Nmया Nsघंटों, मिनटों और सेकंडों के बीच का अंतर याद है। + :later N<CR><=> Ng+और :later Nfफ़ाइल के लिए लिखते हैं।


1
:laterमेरे लिए काम किया है vi(vim नहीं - Google पर "vi" के लिए खोजा गया लेकिन सभी परिणाम "vim" के लिए हैं), धन्यवाद!
ल्यूक

@Luc लगभग हर जगह जहाँ आपके पास viयह कमांड है यह वीम एग्जीक्यूटेबल या इसके प्रति कॉपी है। हालांकि हर जगह पूरी तरह से नहीं।
ZyX

@ZyX मैं चाहता हूं कि यह सच था। मैं केवल vi का उपयोग करता हूँ, क्योंकि बैश फेंकता है vim: command not found। अगली बात यह है alias vim=viकि मैं इसे स्वचालित रूप से टाइप करता हूं, लेकिन यह सादे पुराने vi फिर भी है। इसके अलावा, redo (ctrl + r) ने ठीक से काम किया होगा vi vi के लिए एक उपनाम था।
ल्यूक

2
9999999d 27395 साल पहले का है। मुझे लगता है कि पूर्ववत सुविधा लागू नहीं की गई थी। आप अपने आप को कुछ थकाऊ टाइपिंग प्रयास से बचाना चाहते हैं और उचित संख्या का उपयोग कर सकते हैं। 9999d लगभग 27 साल, 999d से 2.7 साल तक संबंधित है। मुझे लगता है कि ज्यादातर मामलों में यह पर्याप्त है ...
क्रिस्टोफ

45

विम प्रलेखन

<Undo>      or                  *undo* *<Undo>* *u*
u           Undo [count] changes.  {Vi: only one level}

                            *:u* *:un* *:undo*
:u[ndo]         Undo one change.  {Vi: only one level}

                            *CTRL-R*
CTRL-R          Redo [count] changes which were undone.  {Vi: redraw screen}

                            *:red* *:redo* *redo*
:red[o]         Redo one change which was undone.  {Vi: no redo}

                            *U*
U           Undo all latest changes on one line.  {Vi: while not
            moved off of it}

30

कमांड मोड में, Uपूर्ववत् और Ctrl+ rको फिर से करने के लिए कुंजी का उपयोग करें। Http://www.vim.org/htmldoc/undo.html पर नज़र डालें ।


इन्सर्ट मोड में कैसे?
युफेंग शेन

1
@YuFengShen vim की शक्ति कमांड मोड में है। हमें इन्सर्ट मोड में
रीडो की

लिंक (प्रभावी रूप से) टूटा हुआ है।
पीटर मोर्टेंसन

14

सबसे पहले दबाएं Esc संपादन मोड से बाहर निकलने के कुंजी ।

फिर,

के लिए पूर्ववत , उपयोग uकुंजी कई बार के रूप में आप पूर्ववत करने के लिए चाहते हैं।

के लिए फिर से करें , उपयोग Ctrl+ rकुंजी


11

Vim दस्तावेज़ के "पूर्ववत करें" और "पुनः" भाग का संदर्भ लें ।

: लाल [o] (पूर्ववत करें जो परिवर्तन पूर्ववत था) और {गणना} Ctrl+ r(Redo {गिनती} परिवर्तन जो पूर्ववत थे) दोनों ठीक हैं।

इसके अलावा : पहले वाला {काउंट} (पुराने टेक्स्ट स्टेट {काउंट} बार जाना) हमेशा पूर्ववत और फिर से करने के लिए एक विकल्प हो सकता है।


5

CTRL+r

"आर" लोअर-केस है।


9
वास्तव में, इससे कोई फर्क नहीं पड़ता - पारंपरिक कंसोल में कोई अंतर नहीं है ^rऔर ^R, और विम इस प्रकार है।
ephemient

@ कुशल: सहमत। MS-DOS में, आप एक लोअरकेस ^X(जहाँ Xकोई भी अक्षर हो सकते हैं) टाइप नहीं कर सकते हैं ।
nyuszika7h

विम में, Ctrl-Shift-R (अपरकेस आर के साथ ctrl) को मोड बदला गया है।
पॉल स्टेलियन

5

दृश्य स्टूडियो के लिए VsVim का उपयोग?

VsVim के साथ प्रयोग करने के दौरान मुझे यह पता चला, जो विज़ुअल स्टूडियो में Vim कमांड के लिए बाइंडिंग प्रदान करता है ।

मुझे इसके बारे में मालूम है Ctrlr विम के में ही , लेकिन यह विशेष रूप से बाध्यकारी VsVim (कम से कम मेरे सेटअप में नहीं?) में काम नहीं करता है।

हालांकि क्या काम करता है, कमांड है :red। यह उपर्युक्त की तुलना में थोड़ी अधिक परेशानी है, लेकिन यह तब भी ठीक है जब आपको वास्तव में इसकी आवश्यकता होती है।


डाउनवोट किया गया क्योंकि प्रश्न विशेष रूप से विज़ के बारे में पूछ रहा है, न कि विज़ुअल स्टूडियो।
जॉन वॉन न्यूमैन

3
@JohnVonNeumann यह है कम से कम vim बाइंडिंग पर विम से संबंधित, या, बस बनाम के संदर्भ में यही कारण है कि मुझे इस सवाल पर लाया, सब के बाद। किसी को अधिक जानकारी जोड़ने के लिए किसी को दंडित करना थोड़ा कठोर और बिना सोचे-समझे आपको लगता है, भले ही यह ओपी के दायरे से थोड़ा आगे बढ़ा हो?
कजरतन

2

व्यवहार में, :undolistउपयोग करने के लिए कठिन है और विम के :earlierऔर :laterपरिवर्तन का समय ट्रैकिंग पाठ्यक्रम-अनाज सुधार के लिए केवल प्रयोग करने योग्य है।

यह देखते हुए कि, मैं एक प्लग-इन का सहारा लेता हूं जो इन सुविधाओं को जोड़ती है ताकि "गोटो" नामक ब्रॉज़ेबल पूर्ववत का दृश्य पेड़ प्रदान किया जा सके।

जाहिर है, यह केवल उपयोग करने के लिए कुछ है जब आपको एक ठीक-ठीक फिक्स की आवश्यकता होती है, या आप उस दस्तावेज़ की सटीक स्थिति से अनिश्चित होते हैं जिसे आप वापस करना चाहते हैं। देखें: गुंडो शैली में अपने विम पेड़ को ग्राफ करें

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