2012-05-24 11 views
5

Czy chcesz, aby Vim utworzył komentarz blurb oparty na filecie po otwarciu nowego pliku?Automatyczne tworzenie komentarzy do dokumentacji w Vim

Jestem nowy w Vim. Oto funkcjonalność, której szukam. Kiedy zrobić:

$ vim hello.py 

Chcę plik zacząć:

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

itp Szukałem wokół, ale nie mogę znaleźć rozwiązania, aby to zrobić.

Odpowiedz

4

Można to zrobić bez szkieletu plików przy użyciu następujących:

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" 

umieścić te w vimrc.

Potencjalnym problemem jest to, że autocmd BufWritePre dołączy aktualny czas do wszystkich linii literę:

#Last Modified: 
3

to jest opisane w vim autocmd pomoc .. zwłaszcza chcesz this

1

Ta odpowiedź jest oparta na pb2q-tych, ale czyni go bardziej rozciągliwe. Zdefiniować funkcję zrobić tworzenia, więc można go używać do różnych typów Komentarz:

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 

(Uwaga: to jest moja praktyka, aby korzystać z dłuższych form ilekroć to możliwe w skryptów Vima, chyba jestem golfing, ponieważ cenię czytelność kodu, a normalne polecenia są tajemne).

Następnie można zdefiniować autokomend takie jak:

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

nocie, którą dałem komentarz pusty znak dla Pythona. To dlatego, że w nagłówku pliku miałem ciągi ''' do komentowania. Możesz użyć '# ' lub '## ' lub cokolwiek, co Ci się podoba.

Możesz zrobić coś podobnego z Created.

Powiązane problemy