2012-05-24 4 views
5

새 파일을 열 때 Vim이 파일 형식을 기준으로 주석을 만들도록 하시겠습니까?Vim에서 자동 문서 주석 생성

Vim을 처음 사용했습니다. 여기 내가 찾고있는 기능이 있습니다. 내가 할 때 : 나는 주위를 수색하지만이 할 수있는 해결책을 찾을 수없는 등

#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 

를 내가 가진 파일을 시작합니다.

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 사람들을 넣어 :

답변

4

을 원하는 ... Vim은 autocmd 도움말에 덮여있다.

#Last Modified: 
3

이 특히 당신이 다음을 사용하여 골격 파일없이이 작업을 수행 할 수 this

1

이 답변은 pb2q 년대에 기반하지만, 더 확장한다 :

잠재적 인 문제는 autocmd BufWritePre로 시작 모든 라인에 현재 시간을 추가 할 것입니다. 생성 할 수있는 기능을 정의, 그래서 당신은 주석 유형의 다양한 사용할 수 있습니다 :

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과 비슷한 작업을 수행 할 수 있습니다.