मैं पूरी तरह से एक रजिस्टर / कई रजिस्टर कैसे साफ़ कर सकता हूं?


16

मैं अक्सर का उपयोग :registersसभी रजिस्टरों की सामग्री को दिखाने के लिए आदेश (मैं भूल जाते हैं कि मैं क्या कर दिया, जहां, वास्तव में क्या की भूमिका "*, "., "%, आदि कर रहे हैं)।

विशेष रूप से क्योंकि मैंने "विकल्प में विकल्प निर्धारित किया है viminfo, और इसलिए मेरे रजिस्टरों को मेरे विम सत्रों के बीच कायम रखा गया है (सामान्य तौर पर, जो मुझे कम समय में चाहिए), समय के साथ :registersसूची लंबी और लंबी होती जाती है, और इसलिए अधिक से अधिक बोझिल और भरी हुई होती है वास्तव में पुराने सामान के साथ।

अब तक, मुझे इसे ठीक करने का एकमात्र तरीका है कि मैं कुछ 'पुरानी' रजिस्टर सामग्री को मैन्युअल रूप से संपादित ~/.viminfoकरूं, जिसे मुझे करने की आवश्यकता है vim -u NONEऔर इसलिए यह थोड़ा बोझिल है।

क्या सभी रजिस्टरों को पोंछने के लिए एक साफ तरीका है, या एक विशिष्ट रजिस्टर को पोंछना है, इसलिए यह अब :registersसूची में दिखाई नहीं देता है ?

जवाबों:


12

संक्षेप में, रजिस्टरों को पूरी तरह से पोंछने के लिए एक क्लीनर तरीका नहीं है जिससे वे गायब हो जाते हैं :reg

साथ में आसपास रहने के बजाय ~/.viminfo, मैं "सॉफ्टक्लियर" रजिस्टर करता हूं जब मैं खाली होने के लिए उन्हें सेट करके वास्तव में और वास्तव में उनके साथ किया जाता हूं। साफ़ करने के लिए aरजिस्टर, उदाहरण के लिए, मैं टाइप qaqस्थापित करने के लिए aएक रिक्त स्ट्रिंग पर रजिस्टर। समान रूप से, :let @a=''एक ही करता है।

फिर, का आउटपुट देखना :regअभी भी मददगार है क्योंकि खाली रजिस्टरों और निहित रजिस्टरों के बीच विचार-विमर्श करना बहुत आसान है। दूसरी ओर, मुझे लगता है कि अनिवार्य रूप से मेरे सभी नामित रजिस्टर शीर्ष पंक्ति (मैक्रोज़) या मुख्य पंक्ति (उपयोगी पेस्ट चीजों) पर झूठ बोलते हैं, और फिर भी मैंने केवल 15 नामित रजिस्टरों का उपयोग किया है।

कुछ साल पहले विम मेलिंग सूची में एक धागा था जो यह भी निष्कर्ष निकाला था कि रजिस्टरों को पोंछने का कोई आसान तरीका नहीं था।


5

सूची aसे रजिस्टर नाम (कहना ) को हटाने के इच्छुक लोगों के लिए, अब इसे करने का एक तरीका है। कमांड चलाएं ।:registers:call setreg('a', [])

मुझे इस सवाल का पता उपयोगकर्ता @LucHermitte से StackOverflow पर लगा। उसका उत्तर विवरण कई रजिस्टरों को साफ करने का तरीका बताता है। यदि आप चाहते हैं कि यह कार्य सुपर आसान हो, तो अपने साथ रचनात्मक .vimrcबनें :)


3

इसे अपने में रखें .vimrc:

command! WipeReg for i in range(34,122) | silent! call setreg(nr2char(i), []) | endfor

और हर रजिस्टर को क्लियर करें :WipeReg

यदि आप चाहते हैं कि हर बार होने के बाद आप विम को भी शुरू करें:

autocmd VimEnter * WipeReg

1
कमांड के लिए धन्यवाद यद्यपि यह रीड-ओनली रजिस्टर्स जैसे ","%, ":," #
अशोक
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.