运行makefile(如果存在),否则使用vimscript运行扩展特定命令

时间:2014-12-11 09:40:44

标签: makefile vim

我想映射 F9 以在当前或父目录中运行makefile,如果没有找到makefile,则根据文件扩展名运行。

我试过这样做:

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

但这仅适用于当前目录中的makefile,我不知道如何在父目录中搜索它们,当没有{{1时,它也不适用于.tex个文件}}

2 个答案:

答案 0 :(得分:2)

如果执行行中的+.交换,则可以正常工作。

答案 1 :(得分:0)

您可以通过findfile()功能进行(向上和向下)文件搜索。

正如您已经发现的那样,字符串连接必须使用.,而不是+,这仅用于数字添加。