我不希望在VIM中的makeprg之后看到空缓冲区

时间:2012-10-26 13:12:54

标签: django vim

使用VIM我想执行当前的sql文件并查看结果。我尝试了以下内容(./manage.py dbshell是一个Django包装器psql

nmap <silent> <Leader>r :make<CR>
autocmd FileType sql set makeprg=cat\ %\\\|./manage.py\ dbshell

工作正常。但是在按ENTER或键入命令后继续 VIM总是显示空缓冲区(可能是错误列表)。如何跳过它的开头?

如果我在命令模式下运行相同,它将如我所料(没有恼人的缓冲区)

:!cat %|./manage.py dbshell

我的SQL脚本包含一个select语句。魔术缓冲区看起来像: enter image description here

1 个答案:

答案 0 :(得分:6)

'errorformat'选项可能是错误的。尝试做

:make!

(与bang!)并查看是否出现此窗口。如果没有,则确实如此,您应该阅读:h 'errorformat'并在'make'之外另外设置它。或者从不使用普通的:make而没有爆炸,忘记跳转到错误(如果该脚本能够输出有关错误的信息)。


另一个想法:你能否展示

的输出
:au ShellCmdPost,QuickFixCmdPre,QuickFixCmdPost

?它也可能是在这三个事件之一上启动的某些插件或vimrc代码的问题。


顺便说一句,你发布的命令中有两件事可以改进。首先,映射应写为nnoremap。您不需要在此处重新映射,它可以节省您在vimrc中添加其他映射的时间。

其次,在autocmd中使用setlocal,而不是set。使用set为sql one之后打开的所有缓冲区设置默认值'makeprg'