2012-01-19 7 views
37

क्या कोई आदेश है जो दिखाता है कि सामान्य मोड में अंतिम आदेश क्या था?विम "मेरा अंतिम आदेश दिखाएं" कमांड?

मान लीजिए कि मैंने गलती से यादृच्छिक कुंजी मारा और कुछ अप्रत्याशित परिणाम प्राप्त हुए। निश्चित रूप से मैं इसे पूर्ववत कर सकता हूं, लेकिन क्या मैं प्रकट कर सकता हूं कि किस कुंजी को दबाया गया था और इसका अर्थ कैसे समझाया गया था?

+1

सबसे अच्छी बात यह है कि मैं इसके साथ आ सकता हूं: 'echo v: count। v: ऑपरेटर' – sehe

+0

अवधि (।) सामान्य मोड में दर्ज अंतिम आदेश दोहराता है। Http://vim.runpaint.org/editing/repeating-commands/ –

+1

हां देखें, लेकिन यह आदेश दोहराया नहीं जाएगा। – dvs

उत्तर

10

अंतिम आदेश का पाठ . रजिस्टर में संग्रहीत है। आप द्वारा सभी रजिस्टरों को देख सकते हैं: प्रदर्शित करें। दुर्भाग्यवश यह नहीं कहता कि सामान्य आदेश क्या शुरू हुआ।

: (आदेश मोड) से आदेश को देखने के लिए आप उपयोग कर सकते हैं: hist या q: जो तक ही सीमित है पिछले 20 (डिफ़ॉल्ट रूप से)।

एक और क्षमता पूर्ववत बफर को बचाने के लिए है : wundo undo.bin - लेकिन पूर्ववत बफर बाइनरी है।

लेकिन इनमें से कोई भी वास्तव में आपके प्रश्न का उत्तर नहीं देता है। अगर यह किया जा सकता है तो मैं उत्सुक हूं।

+0

भंडार रजिस्टर यही कारण है कि पिछले डाला पाठ ('के बाद मैं, ए, मैं, एक, एस, एस, सी, C') – Benoit

6

इसे जानना मुश्किल है। आप चर के साथ खेल सकते हैं:

v:operator 
v:count (and v:prevcount) 
v:register 

लेकिन आप पूरी तरह से जारी किए गए पिछले सामान्य मोड आदेश नहीं मिल सकता है। आप एक UNIX मशीन पर अपने खोल में यह उर्फ ​​कर सकते हैं:

लेकिन यदि आप योजनाबद्ध तरीके से जो भी आप टाइप करते हुए विम में रिकॉर्ड करना चाहते हैं, तो आप vim -W ~/.vim-last-scriptout (vim -W "%HOMEPATH%\Vim\.last-scriptout एक Windows संस्करण) शुरू कर सकते हैं। प्रत्येक एकल कुंजी, या नियंत्रण कुंजी, उस फ़ाइल में दर्ज की जाएगी। ध्यान दें कि यदि आप gvim या vim -g (GUI) का उपयोग करते हैं तो आप encounter this bug कर सकते हैं।

आप उपयोग कर सकते :source! या कमांड लाइन से -s विकल्प (विस्मयादिबोधक चिह्न के साथ) आप इस फाइल को पुनः चलाने के लिए चाहते हैं।

विंडोज़ पर मैंने अपने कमांडर प्रोग्राम (फ्री कमांडर) में अपने डिफ़ॉल्ट संपादक के रूप में gvimportable.exe -W gvim_directory\last_scriptout सेट किया है। इस तरह से मैं हमेशा कुछ याद करने के लिए टाइप किया गया है और दूसरी फ़ाइल पर कमांड का अनुक्रम दोहरा सकता हूं। बेशक मेरे पास विम खोलने और स्क्रिप्टआउट खेलने के लिए एक और शॉर्टकट है।

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

40

कोलन (:) दबाएं और फिर पिछले आदेशों के माध्यम से वापस जाने के लिए ऊपर तीर का उपयोग करें। आप सूची के चारों ओर स्थानांतरित करने के लिए ऊपर/नीचे तीरों का भी उपयोग कर सकते हैं।

+0

बिल्कुल सही जवाब। इसे और अधिक उन्नयन की जरूरत है! –

+1

यह किसी कारण से मेरे लिए काम नहीं करता है। इतिहास को चालू किया गया था 0 को सेट किया गया था। समाधान 'सेट इतिहास = 100' चलाने के लिए था और फिर मैं पिछले आदेश देखने के लिए ऊपर तीर करने में सक्षम था। – Jim

+0

मैं इस मोड के बाहर निकलने का तरीका जानने के लिए वर्षों से प्रयास कर रहा हूं। एएससी काम नहीं करता है। ऐसा लगता है: कभी-कभी काम करता है, लेकिन हमेशा नहीं। मैं हमेशा इस मोड में फंस जाता हूं। – devios1

25

q: आपको विम में कमांड इतिहास दिखाएगा। q/ आपको खोजों का इतिहास दिखाएगा

+5

तो _that's_ यह सुविधा समय-समय पर यादृच्छिक रूप से क्यों पॉप अप करती है। (यह ': q' के विपरीत है)। मैं यह नहीं जानता था कि यह अन्यथा तलाशने के लिए अस्तित्व में है। – felwithe

+1

ओएमजी। यह मुझे इतने लंबे समय से प्रेतवाधित कर दिया है। मैं यह नहीं समझ सका कि वास्तविक आदेश क्या था (': w ', ': q ', आदि) इसलिए मुझे नहीं पता था कि Google के लिए क्या करना है। Haha। धन्यवाद! – rgin

+1

मैं * हमेशा * इस मोड में फंस गया। आप इससे कैसे निकलते हैं? एएससी काम नहीं करता है और वह वास्तव में मुझे यात्रा करता है। – devios1