我总是忘记在使用vim内置编译命令:make
进行编译之前将所有文件保存在缓冲区中。那么有可能让vim打印一个关于保存文件的提示,就像我们在保存文件之前退出时一样吗?
答案 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 以最小化时,文件将被写入(假设它也没有在磁盘上更改),当您恢复窗口(或在终端上下文中前景化)时,您将自动获得最新的文件内容。