2014-12-11 2 views
1

F9 매핑을 실행하여 현재 또는 상위 디렉토리에서 makefile을 실행하고 makefile이 없으면 파일 확장자를 기반으로 무언가를 실행하십시오.makefile이 있으면 실행하고, 그렇지 않으면 vimscript를 사용하여 확장 프로그램을 실행하십시오.

function! Runf9() 
    if filereadable("./Makefile") 
    make 
    elseif (&filetype == "tex") 
    execute("!pdflatex " + bufname("%")) 
    endif 
endfunction 
nmap <silent> <F9> :call Runf9()<CR> 

그러나 현재 디렉토리에있는 메이크 파일이 유일한 작품, 내가 부모 디렉토리에 그들을 위해 검색하는 방법을 모른다, 또한 .tex 파일을 작동하지 않습니다

나는이 일을 시도 Makefile이 없을 때.

+0

'filereadable'는 경로를 취합니다 ... 부모 디렉토리에 대해''../ Makefile ''의 경로를 주시겠습니까? '.tex' 파일을위한 파일 타입은 무엇입니까? '텍스 '? 'plaintex'? '라텍스? –

+0

@EtanReisner 부모 디렉토리의 부모 등등. tex 파일은 확장자가 .tex이고 라텍스는 –

+0

입니다. 파일 확장자에 관해 묻지 않았습니다. 그것은'& filetype '이 당신에게 말하는 것이 아닙니다. '& filetype'은 vim이 파일을 고려하는 내부 파일 유형 이름입니다. 내선 번호를 확인하려면 다른 방법으로해야합니다. –

답변

2

실행 행의 +.으로 바뀌면 작동합니다.

0

findfile() 기능을 통해 (위쪽 및 아래쪽 모두의) 파일 검색을 수행 할 수 있습니다.

이미 알았 으면 문자열 연결은 숫자 추가 전용 인 +이 아니라 .으로 끝나야합니다.

관련 문제