首页 > 解决方案 > Vim autocmd 适用于 FocusGained 但不适用于 BufWritePost

问题描述

我有这个在我的.vimrc

au FocusGained * echo "hello world"

它有效——当我切换到我的 vim 窗口时,我在状态栏中看到“hello world”。但是,如果我将其切换为:

au BufWritePost * echo "hello world"

然后用 保存文件:w,“hello world”不显示。为什么不?

标签: vim

解决方案


根据@jeremysprofile 的评论,如果我切换到,这可以工作BufWriteCmd

au BufWriteCmd * w | echo "hello world"

w |请注意,在运行我需要的命令之前,我必须使用前缀来运行“write”命令的默认行为。就我而言,我想运行一个vim-fireplace Require命令,所以它也有助于使用silent!前缀:

au BufWriteCmd *.clj w | silent! Require

推荐阅读