2012-05-24 13 views
5

में स्वचालित प्रलेखन टिप्पणियां सृजन करने के लिए क्या कोई नई फ़ाइल खोलने पर फ़ाइल प्रकार के आधार पर विम एक टिप्पणी ब्लर्ब बनाने के लिए है?विम

मैं विम के लिए नया हूं। यहां वह कार्यक्षमता है जिसे मैं ढूंढ रहा हूं। जब मैं कार्य करें:

#Date Created: 24 May 2012 
#Last Modified: (This is optional, really) 
#Summary: (enter short summary of program here) 
#Author: My Name 
#License: ... 

आदि मैं चारों ओर खोज की है, लेकिन मैं यह करने के लिए एक समाधान नहीं मिल सकता है:

$ vim hello.py 

मैं शुरू करने के लिए फ़ाइल के साथ चाहते हैं।

उत्तर

4

आप निम्न का उपयोग कर कंकाल फ़ाइलों के बिना यह कर सकता है:

autocmd BufNewFile *.py exe "normal O#Date Created: " . strftime("%d %b %Y") . "\r#Last Modified:\r#Summary:\r#Author:\r#License:\r" 
autocmd BufWritePre *.py exe "%s/^#Last Modified:.*$/#Last Modified: " . strftime("%d %b %Y (%T)") . "/e" 

अपने vimrc में उन लोगों को शामिल करें।

एक संभावित समस्या है कि autocmd BufWritePre के साथ शुरुआत सभी लाइनों के लिए वर्तमान समय में संलग्न कर देगा है:

#Last Modified: 
3

यह vim autocmd मदद में कवर किया जाता है .. विशेष रूप से आप चाहते हैं this

1

इस उत्तर pb2q के पर आधारित है, लेकिन इसे और अधिक विस्तृत बनाता है। एक समारोह को परिभाषित करें निर्माण करने के लिए है, तो आप टिप्पणी प्रकार की एक किस्म के लिए उपयोग कर सकते हैं:

function UpdateModifiedTime(comment) 
    let savedPosition = getpos(".") 
    call cursor(1, 1) 
    let modified = a:comment . 'Modified:' 
    if search(modified, 'e') > 0 
     execute 'substitute/' . modified . '.*/' . modified . ' ' . strftime('%b %d, %Y %T') . '/' 
    endif 
    call setpos(".", savedPosition) 
endfunction 

(नोट: यह विम को स्क्रिप्ट, जब तक कि मैं golfing हूँ में लंबे समय तक रूपों जब भी संभव हो उपयोग करने के लिए मेरी बात है, क्योंकि मैं कोड पठनीयता मानता हूं और सामान्य आदेश आर्केन होते हैं)।

autocmd BufWrite *.sh,*.ksh,*.bash  call UpdateModifiedTime('## ') 
autocmd BufWrite *.vim     call UpdateModifiedTime('" ') 
autocmd BufWrite *.py     call UpdateModifiedTime('') 
autocmd BufWrite *.c      call UpdateModifiedTime('// ') 

ध्यान दें कि मैं अजगर के लिए एक खाली टिप्पणी चरित्र दिया:

फिर आप इस तरह के रूप autocommands परिभाषित कर सकते हैं। ऐसा इसलिए है क्योंकि टिप्पणी के लिए मेरे फ़ाइल शीर्षलेख में ''' तार थे। आप '# ' या '## ' या जो भी अपनी कल्पना को गुदगुदी कर सकते हैं का उपयोग कर सकते हैं।

आप Created के साथ कुछ ऐसा कर सकते हैं।