TERM सिग्नल प्राप्त होने पर बफर को बचाने के लिए डिफ़ॉल्ट सेट करें


1

मैं विम के कई उदाहरणों का उपयोग करता हूं। वर्तमान में मैं बैश फ़ंक्शन का उपयोग करता हूं

kv(){ a=($(pgrep vim)); kill ${a[@]}; }  

विम के सभी चल रहे उदाहरणों को समाप्त करने के लिए। इसमें जहां भी अनचाहे बदलावों के साथ एक विम की हत्या की गई थी, वह बिना सोचे समझे .swp फाइलों को छोड़ने का दोष है। क्या यह अपने बफ़र्स को बचाने के लिए विम सेट करने का एक तरीका है अगर इसे एक किल सिग्नल भेजा जाता है?


मैंने खुद इसकी कोशिश नहीं की है, इसलिए मुझे नहीं लगता कि यह वही करेगा जो आपको चाहिए, लेकिन :help VimLeave तथा :help v:dying सुझाव दें कि जब भी संकेत के कारण विम बाहर निकलता है, तो विमलेव इवेंट चालू हो जाता है।
garyjohn

जवाबों:


2

आप विशेष रूप से TERM सिग्नल को ट्रैप नहीं कर सकते हैं, लेकिन आप किसी भी सिग्नल के बारे में "पकड़" सकते हैं जो विम को इनायत करने का मौका देता है। इसमें उदाहरण देखें:

:help v:dying

आप संशोधित कर सकते हैं :echo उदाहरण में कुछ इस तरह की कमान :wqall (देख " :help :wqall ")।

मैं यह अनुशंसा नहीं करता, यद्यपि। आपके पास आसानी से एक फ़ाइल (ओवर) लिखी जा सकती है जब आप ऐसा नहीं चाहते थे।


मैं आपकी मदद के लिए, और उन दोनों के बल पर धन्यवाद करता हूं: मैंने जो आइटम जोड़े हैं, उनकी मदद करें
user985675

0

मुझे लगता है कि भैंसों को बचाना संभव नहीं है VimLeave। मैंने नीचे कोड की कोशिश की है

autocmd VimLeave * :!touch ~/logs/vim-leave
autocmd VimLeave * :wall

यह कोड सफलतापूर्वक touch फ़ाइल लेकिन बफ़र्स को नहीं बचाया। मुझे मिला यह धागा विम मेलिंग सूची से

विम कॉल डेथट्रैप () फ़ंक्शन, जो सभी बफ़र्स को बंद करता है,   और फिर गेटआउट () कॉल किया जाता है, जिसमें सभी ऑटोकॉमैंड्स संसाधित होते हैं   (BufWinLeave, BufUnLoad, VimLeavePre और अंत में VimLeave)। लेकिन उसके द्वारा   समय, आप अब किसी भी बफ़र्स को सुरक्षित नहीं कर सकते।

तब तक, विम घातक संकेत को संभालता है, यह असुरक्षित नहीं कहेगा   अब और कार्य (जैसे मेमोरी आवंटित करना) इसलिए मुझे संदेह है कि यह संभव होगा   जो आप चाहते हैं उसे प्राप्त करने के लिए।

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