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
이 없을 때.
'filereadable'는 경로를 취합니다 ... 부모 디렉토리에 대해''../ Makefile ''의 경로를 주시겠습니까? '.tex' 파일을위한 파일 타입은 무엇입니까? '텍스 '? 'plaintex'? '라텍스? –
@EtanReisner 부모 디렉토리의 부모 등등. tex 파일은 확장자가 .tex이고 라텍스는 –
입니다. 파일 확장자에 관해 묻지 않았습니다. 그것은'& filetype '이 당신에게 말하는 것이 아닙니다. '& filetype'은 vim이 파일을 고려하는 내부 파일 유형 이름입니다. 내선 번호를 확인하려면 다른 방법으로해야합니다. –