Im emacs, मैं वर्तमान बफर द्वारा संदर्भित फ़ाइल पर "स्पर्श" चलाने के लिए चाहता हूं (विशेष रूप से संशोधन समय बदलना चाहता हूं)। फ़ाइलों को बदलने के बाद कुछ परीक्षण चलाने के लिए मैं guard का उपयोग करता हूं, लेकिन कभी-कभी मैं इसे मैन्युअल रूप से आमंत्रित करना चाहता हूं। मुझे तब तक वास्तविक खोल उपयोगिता स्पर्श चलाने की परवाह नहीं है जब तक कि एमटाई सेट हो।emacs में वर्तमान फ़ाइल "स्पर्श करें"
उत्तर
बेशक, यह मानता है कि आपके पास आपके पथ पर touch
नामक कमांड है।
(defun touch()
"updates mtime on the file for the current buffer"
(interactive)
(shell-command (concat "touch " (shell-quote-argument (buffer-file-name))))
(clear-visited-file-modtime))
dired मोड में एक स्पर्श आदेश T
को डिफ़ॉल्ट रूप से बाध्य नहीं है। यह आदेश उपयोग करने में इतना आसान नहीं है क्योंकि यह उपयोगकर्ता को टाइमस्टैम्प के लिए संकेत देता है। मुझे लगता है कि यह बहुत सामान्य है, लेकिन यह आमतौर पर "स्पर्श" के उद्देश्य से करने का एक बहुत ही सुविधाजनक तरीका नहीं है।
सुंदर, मुझे यकीन नहीं था कि फ़ाइल नाम को कमांड में कैसे प्राप्त करें। – spike
क्या होगा यदि बफर नाम में रिक्त स्थान हैं? या "आरएम-आरएफ /" के साथ समाप्त होता है? मैं '(शेल-कोट-तर्क (बफर-फ़ाइल-नाम))' – Nemo
का उपयोग करने का सुझाव दूंगा यदि इसमें इसमें रिक्त स्थान हैं तो कुछ उद्धरण करेंगे - मैं इसे जोड़ दूंगा। यदि आप अपनी फाइलों को "; आरएम-आरएफ /" के साथ नाम दे रहे हैं तो आप जो भी प्राप्त करते हैं उसके लायक हैं! :) मुझे इस बारे में याद दिलाता है: http://xkcd.com/327/ –
मुझे ऐसा लगता है: एक स्पेस डालें, अंत में मैं फिर से स्थान हटा देता हूं और सहेजता हूं। यह mtime बदलता है।
हाँ, यही वह है जो मैं भी कर रहा हूं, लेकिन – spike
हाँ, यह बहुत कुछ है जो मैं भी करता हूं, लेकिन मैंने एक लिस्प फ़ंक्शन लिखा है जो आपकी मदद करेगा (इस प्रश्न का मेरा जवाब देखें)। –
यहाँ एक शुद्ध Emacs तरह से यह करने के लिए है:
(defun touch-file()
"Force modification of current file, unless already modified."
(interactive)
(if (and (verify-visited-file-modtime (current-buffer))
(not (buffer-modified-p)))
(progn
(set-buffer-modified-p t)
(save-buffer 0))))
मुझे" शुद्ध "elisp समाधान पसंद है जिसे खोल में कॉल करने की आवश्यकता नहीं है, लेकिन क्या यह दृष्टिकोण केवल टाइमस्टैम्प को बदलता है, या संपूर्ण बफर लिखता है फाइल के लिए? यहां तक कि डाइडर-मोड का टच कमांड स्पर्श कमांड का आह्वान करने के लिए खोल में कॉल करता है। हमें वास्तव में जो चाहिए वह एक elisp फ़ंक्शन है जो Emacs प्रक्रिया से सी में utime() को कॉल करता है। –
@ ग्रेगमैट्स - यह मूल रूप से बफर को "संशोधित" करने के बराबर करता है और फिर इसे सहेजता है (वास्तव में बफर सामग्री को बदले बिना)। – jtahlborn
हाँ, बिल्कुल। इससे बहुत सी आई/ओ हो सकती है अगर कई फाइलों को छुआ जा रहा है क्योंकि पूरी सामग्री को बचाया जा रहा है। उदाहरण के लिए, प्रश्न पूछने वाले को परीक्षण को मजबूर करने के लिए फ़ाइलों को छूने में रुचि है। मैं कल्पना कर सकता हूं कि वह फाइलों के एक समूह को स्वचालित रूप से स्पर्श करने के लिए कुछ elisp लिख सकता है, संभवतः फ़ाइलों का एक बड़ा सेट। तो बस इनोड में mtime को म्यूट करने की बजाय पूरी फ़ाइल लिखना बहुत महत्वपूर्ण हो सकता है। मैं नहीं कह रहा हूं कि आपका दृष्टिकोण गलत है। वास्तव में, यह बाहरी शेल कमांड का आह्वान किए बिना प्लेटफार्म-स्वतंत्र elisp में यह सब वास्तव में अच्छा है। –
हो सकता है कि एक कस्टम समारोह की तुलना में अधिक कीस्ट्रोक्स, लेकिन आप C-u M-~
तो C-x C-s
के साथ बॉक्स से बाहर कर सकते हैं।
M-~
not-modified
, जो बफर के संशोधन ध्वज को साफ करता है, जब तक आप इसे एक तर्क (C-u
उपसर्ग) है, जो मामले में यह विपरीत है साथ कॉल करने के लिए डिफ़ॉल्ट रूप से बाध्य है। फिर बस बफर को बचाओ।
- 1. emacs: वर्तमान लाइन को
- 2. Emacs/AUCTeX: फ़ाइल पर रन कमांड जो वर्तमान में
- 3. UIPanGestureRecognizer विधि में वर्तमान स्पर्श बिंदु और पिछले स्पर्श बिंदु कैसे प्राप्त करें?
- 4. Emacs: वर्तमान बफर कोडिंग सिस्टम
- 5. Emacs में वर्तमान बफर/फ़ाइल के बारे में जानकारी कैसे प्राप्त करें?
- 6. सी # में किसी फ़ाइल को कैसे स्पर्श करें?
- 7. जांचें कि वर्तमान Emacs बफर में स्ट्रिंग
- 8. Emacs में हो रही pdb वर्तमान virtualenv
- 9. फ़ाइल को स्पर्श करें - इसे संशोधित समय स्टैम्प अपडेट करें
- 10. फ़ाइल पथ Emacs
- 11. emacs - उपनिर्देशिका में खोज-फ़ाइल खोज कैसे करें
- 12. Emacs में फ़ाइल एक्सटेंशन हुक
- 13. उइलाबेल स्पर्श करें और
- 14. वर्तमान स्थानीय कीमैप का Emacs नाम?
- 15. स्कैन में "स्पर्श" के बराबर?
- 16. वर्तमान में खोला गया फ़ाइल
- 17. वर्तमान में Emacs Lisp में लोड की जा रही फ़ाइल का संदर्भ कैसे लें?
- 18. Emacs में, मैं वर्तमान फ़ाइल में फ़ंक्शंस के बीच कैसे कूद सकता हूं?
- 19. UIScrollView में स्पर्श विलंब को छोटा करें?
- 20. cocos2d में बहु स्पर्श कैसे सक्षम करें?
- 21. Emacs में पाइथन दुभाषिया में वर्तमान बफर को कैसे लोड करें?
- 22. ग्रहण में, फाइल सिस्टम में वर्तमान फ़ाइल को प्रकट करें
- 23. ग्रहण में, वर्तमान में संपादित फ़ाइल
- 24. स्पर्श
- 25. स्पर्श
- 26. ग्रहण: वर्तमान फ़ाइल का स्थान प्राप्त करें?
- 27. Emacs: psvn.el फ़ाइल कहां डालें?
- 28. UIScrollView स्पर्श बनाम सबव्यूव स्पर्श
- 29. फ़ाइल को बफर में कैसे लोड करें और Emacs
- 30. Emacs: फ़ाइल/बफर प्रबंधन को समझने में मेरी सहायता करें
यह उस प्रश्न का डुप्लिकेट नहीं है। मैं फ़ाइल को सहेजना नहीं चाहता हूं, मैं चाहता हूं कि फाइल का एमटाइम अपडेट किया जाए (इसलिए स्पर्श की आवश्यकता है, @jtahlborn के शुद्ध emacs समाधान नहीं) – spike
मेरी इच्छा है कि लोग उन्हें ध्यान से पढ़े बिना प्रश्न बंद न करें । यह वास्तव में एक अच्छा सवाल है। – Nemo