2012-09-02 1 views
2

확장자가 .java 인 새 파일을 만들 때 베어 스켈 톤 클래스를 만드는 Java 파일 용 기본 Vim 템플릿을 작성하고 있습니다.Vim 템플릿, 파일 이름 가져 오기 및 사용

예 :

vim Banana.java 

빔이 같은 코드를 포함하는 파일을 생성합니다

내 목표는 확장자가없는 파일의 이름으로, 내 기본 클래스 이름, TODO을 변경하는 것입니다
public class TODO { 
    public static void main(String[] args) { 
    // ... 

그래서 :

vim Coconut.java 

생성 :

,
public class Coconut { 

보다는 :

public class TODO { 

가 어떻게 그것을 달성 할 수있는, 제발? 나는 사이트를 검색했고 변수에 이름을 추출하고 수행하는 스크립트가있다. 적절한 장소에서 대체하라. 그러나 올바른 위치를 찾아 파일 이름을 위치시키는 방법을 모른다.

내의 .vimrc에서 확장하여 내 템플릿 파일을 읽어

autocmd BufNewFile * silent! 0r $HOME/vimfiles/templates/%:e.vim_template 

나 :

autocmd BufNewFile * silent! 0r $HOME/.vim/templates/%:e.vim_template 

감사합니다!

답변

4

이것이 도움이 될 것이라고 생각합니다. 이와 http://vim.wikia.com/wiki/Insert_current_filename

현재 파일 이름을 얻을 수 있습니다 : 특히

expand("%:t:r") 

을, 당신은 아마이 찾고 있습니다 :

%s/TODO/\=expand("%:t:r")/g 

전체 예 :

function! NewFile() 
    silent! 0r $HOME/vimfiles/templates/%:e.vim_template 
    s/FILENAME/\=expand("%:t:r") 
endfunction 

autocmd BufNewFile * call NewFile() 

당신은 할 수 또한 tSkeleton 시도처럼, 나 자신을 시도 적이없는 줄 알아요. 이 문제가 해결 될 것 같습니다.

+0

고마워요! .vimrc 파일에이 모든 것을 넣을 곳은 어디입니까? 그걸 그대로 "그대로"사용할 수있는 방식으로 포장 해 주시겠습니까? 해야 할 것 : au 템플릿 바로 다음에? – Robottinosino

+0

@Robottinosino : 업데이트 참조 : – Wolph

+0

업데이트가 완벽합니다. – Robottinosino

1

저격수 (vim.org, github)를 살펴 보겠습니다. 상용구 코드를위한 일반적인 확장 기능으로 Java 용 내장 레시피가 많이 있는데 (here을 찾아 볼 수 있습니다), 이런 종류의 것들에 이상적입니다.

키워드를 입력하고 탭을 누르고 키워드를 상용구 코드로 확장 할 수 있습니다. 따라서 stdclass->을 입력하면 원하는 내용을 얻을 수 있습니다.

스 니펫에는 vim 표현식을 포함 할 수 있습니다 (예 : Filename()). 당신은 확장 된 코드에서 중요한 포인트를 통해 탭 할 수 있으며 작은 스 니펫에도 유용합니다 (getters & setters, try/catch/finally, toString 등).)

사용하기 쉽고, 쉽게 사용자 지정할 수 있으며 Java와 같은 상용구가 많은 언어에서 사용하기가 쉽습니다.