4

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ステートメントが含まれています。そして、魔法のバッファは次のようになります。 ここに画像の説明を入力してください

4

1 に答える 1

7

'errorformat'間違った選択肢である可能性が高いです。やってみる

:make!

(バン!)そして、このウィンドウが表示されるかどうかを確認してください。そうでない場合、これは true であり:h 'errorformat'、 に加えてそれを読んで設定する必要があります'make'。または、平文:makeを bang なしで使用しないで、エラーへのジャンプを忘れてください (そのスクリプトがエラーに関する情報を出力できる場合)。


別のアイデア:出力を表示していただけますか

:au ShellCmdPost,QuickFixCmdPre,QuickFixCmdPost

? また、これら 3 つのイベントのいずれかで起動されるプラグインまたは vimrc コードの問題である可能性もあります。


ところで、あなたが投稿したコマンドには、改善される可能性のあるものが 2 つあります。まず、マッピングは のように記述しnnoremapます。ここで再マッピングする必要はありません。他のマッピングを vimrc に追加するときに時間を節約できます。

setlocal第二に、ではなく、autocmd で使用しsetます。SQL 1の後に開かれるすべてのバッファのsetデフォルトを設定します。'makeprg'

于 2012-10-26T21:06:50.323 に答える