Vim保存然后自动生成?

Vim保存然后自动生成?,vim,Vim,我想在保存文件时调用命令。 我现在通过:make手动调用它,但我希望在执行:w和:wq时可以调用它 我还希望在不包含Makefile但其父文件夹包含Makefile的任何子文件夹中启用此功能。就像这个话题所说的,但它对我不起作用: :autocmd BufWritePost make 这是一个老问题,但我想我应该分享这个。下面是我的食谱,效果很好: let autocompiled_filetypes = [ \ 'php' ] " 'ft2', 'ft3', 'etc

我想在保存文件时调用命令。 我现在通过
:make
手动调用它,但我希望在执行
:w
:wq
时可以调用它

我还希望在不包含Makefile但其父文件夹包含Makefile的任何子文件夹中启用此功能。就像这个话题所说的,但它对我不起作用:

:autocmd BufWritePost make
这是一个老问题,但我想我应该分享这个。下面是我的食谱,效果很好:

    let autocompiled_filetypes = [
        \ 'php' ] " 'ft2', 'ft3', 'etc'
    au BufWritePost * call feedkeys("\<Esc>")
        \ | if index(autocompiled_filetypes, &ft) >= 0 |
        \ | silent! make % | cw | call feedkeys("\<Enter>")
        \ | endif
让自动编译的文件类型=[
\'php']“'ft2','ft3','etc”
au BufWritePost*调用feedkeys(“\”)
\|如果索引(自动编译的文件类型和ft)>=0|
\|静音!按%| cw |键呼叫馈键(“\”)
\| endif

make“是作为shell命令还是作为vim命令?它可能是一个vim函数吗?
:make
是一个vim命令,它运行
make
shell命令并读取其输出,以确保一切正常。如果您希望有时在不使用自动命令的情况下保存,请使用
noautocmd
作为前缀。e、 g.:
noautocmd wq
。通过使用
vim~/.vimrc
编辑vimrc,然后添加行:
map:noautocmd wq
,可以映射一个键来保存和关闭,例如F4。我还通过添加到vimrc中添加了一个F3键来保存和生成:
map:w
@Pablo-实际上,它位于
~/.vim/filetype.vim
中。
au BufWritePost        *.c
            \ make
    let autocompiled_filetypes = [
        \ 'php' ] " 'ft2', 'ft3', 'etc'
    au BufWritePost * call feedkeys("\<Esc>")
        \ | if index(autocompiled_filetypes, &ft) >= 0 |
        \ | silent! make % | cw | call feedkeys("\<Enter>")
        \ | endif