क्या मैं सामान्य मोड में कुंजी प्रेस का इतिहास देख सकता हूं?


32

मुझे पता है कि विम पूर्व आज्ञाओं, खोजों, कूद स्थानों, परिवर्तनों और संभवतः अन्य लोगों के लिए इतिहास रखता है।

showcmdसेट के साथ , विम आपको यह भी दिखाता है कि सामान्य मोड कमांड के लिए आपने अब तक क्या कुंजी दर्ज की है, जब तक कि उस कमांड को निष्पादित नहीं किया जाता है।

कभी-कभी, जब सामान्य मोड में, मैं गलत व्यवहार करता हूं और कार्रवाई होती है। मैं इन क्रियाओं को पूर्ववत कर सकता हूं, लेकिन मैं कभी-कभी यह जानना चाहता हूं कि मेरी गड़गड़ाहट के दौरान संपादन कैसे हुए। कभी-कभी संपादन शांत दिखता है और मैं जानना चाहता हूं कि भविष्य में इसे कैसे दोहराया जाए।

तो, क्या सामान्य प्रेस में कुंजी प्रेस के इतिहास को देखने का कोई तरीका है, अधिमानतः सीमांकित जब एक वास्तविक संपादन या कार्रवाई (जैसे आंदोलन या मोड परिवर्तन) हुई?


4
संभवतः संबंधित: drbunsen.org/vim-croquet
wchargin

जवाबों:


20

@WChargin से लिंक के बाद थोड़ा आगे, मुझे यह मिला:

आप निम्नानुसार -wया -Wविकल्प के साथ विम शुरू कर सकते हैं:

vim -w keys.txt my_file

आपके द्वारा टाइप किए जाने वाले सभी वर्ण फ़ाइल {स्क्रिप्टआउट} में रिकॉर्ड किए जाते हैं, जब तक आप विम से बाहर नहीं निकलते।

-wयदि यह मौजूद है तो निर्दिष्ट फ़ाइल में संलग्न होगा; -Wइसे ओवरराइट कर देंगे।

यह आपको वह नहीं मिलता जो आप चाहते हैं, लेकिन यह सही दिशा है।

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


धन्यवाद! मैं इसे स्रोत कोड में पोकिंग के लिए एक प्रारंभिक बिंदु के रूप में उपयोग कर रहा हूं। ऐसा लगता है कि -w हर सामान्य कुंजी को बचाता है, न केवल सामान्य-मोड कमांड, लेकिन आप सही हैं: यह सही दिशा है!
जॉन ओ.एम.

@xthrd, ये keys.txtफ़ाइल स्वरूपित / संरचित कैसे हैं ? जब मैं उपयोग करता हूं -w, तो एप्लाइड हमेशा एक लंबी-लंबी-लंबी लाइन में हो रहा है; और, वहाँ अजीब अक्षर प्रदर्शित होते हैं: UTF-8 के तहत, जब भी मैं एक नए बफर में एक फ़ाइल खोलूंगा, मुझे मिलेगा €齛। यह अपने आप में एक अच्छा मार्कर है, लेकिन यह बहुत अच्छा होगा यदि लॉग वैकल्पिक रूप से पार्स किए जा सकते हैं।
15-28 को llinfeng

@llinfeng यह बिल्कुल स्वरूपित नहीं है। यह शाब्दिक रूप से कीस्ट्रोक्स युक्त एक फाइल है, जिस क्रम में वे बनाए गए थे। (हालांकि ध्यान दें कि यदि कुछ कीस्ट्रोक्स हैं <cr>, तो फ़ाइल में लाइनब्रीक शामिल होंगे।) ऐसा इसलिए है क्योंकि मुख्य उद्देश्य उन फ़ाइलों को बनाने के लिए है जिन्हें -sविकल्प के साथ वापस खेला जा सकता है। लेकिन इसे अपने लिए क्यों न आजमाया जाए!
रिच

@ आप स्पष्ट करने के लिए धन्यवाद। मैंने अपनी खोज शुरू करने वाली समस्या को ख़राब करने के लिए इस कुंजी-ट्रैकिंग तंत्र का उपयोग किया है। [मेरा सबक यह है कि: Wकमांड लाइन के लिए कभी मैप न करें ।]
llinfeng

-4

वहाँ है q:जो एक कमांड इतिहास दिखाता है।

मुझे यह भी उपयोगी लगता है कि आप मैचों के माध्यम से साइकिल चलाने के लिए आंशिक रूप से पूर्ण कमांड में दबा सकते हैं। उदाहरण के लिए /abc फिर 'abc' से शुरू होने वाली खोजों के आपके इतिहास के माध्यम से दबाव बढ़ेगा


5
q: पूर्व कमांड इतिहास दिखाता है, और उपयोगी है, लेकिन सामान्य आदेशों का एक लॉग नहीं है, जैसे "ad2tn (रजिस्टर में दूसरे एन तक रजिस्टर करें)
जॉन ओ'एम।

यह न भूलें कि एक कमांड को संपादित करने के बीच में आप इतिहास संपादक में करंट लाइन ला सकते हैं और vi का उपयोग करके लाइन को एडिट कर सकते हैंCtrl+f
Sukima
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.