在编译之前如何制作关于保存未保存文件的vim打印提示?

时间:2011-12-20 13:42:53

标签: vim

我总是忘记在使用vim内置编译命令:make进行编译之前将所有文件保存在缓冲区中。那么有可能让vim打印一个关于保存文件的提示,就像我们在保存文件之前退出时一样吗?

2 个答案:

答案 0 :(得分:5)

只需创建一个简单的映射,如:

nnoremap <leader>m :wa <BAR> :make<CR>
  • :wa写入所有缓冲区
  • :make构建
  • 两者之间的
  • |按顺序执行命令。

答案 1 :(得分:4)

修改重新:

  

我发现“autowrite”选项可以在某些方面解决这个问题,但是当我输入next,previous,tag时我也会自动写入。我正在寻找更好的解决方案

您可以使用QuickFixCmdPre:

:au QuickFixCmdPre * write

此示例将在make上保存文件。有关详细信息,请参阅:he autocmd

当然,这只有在你使用vim的

时才有效
:make

如果您使用其他程序,请不要使用例如:!scons -C src,而是使用:se makeprg=scons\ -C\ src和常规:make来触发所有builtin Quickfix functionality

有关更灵活的自动撰写,请参阅:


`autowrite`

我只是用

:set autoread autowrite

在我的.vimrc中;这实际上非常安全,只要您有可能在缓冲区或磁盘上丢失更改,就会收到警告。

在Windows上工作时,这也非常甜蜜,同时在另一个程序中打开相同的文件(例如,Visual Studio或Notepad ++;两者都可以配置为在更改时自动加载文件)。

关于这一点的最好的部分是它也会自动保存最小化,因此每当你点击 Cz 以最小化时,文件将被写入(假设它也没有在磁盘上更改),当您恢复窗口(或在终端上下文中前景化)时,您将自动获得最新的文件内容。