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