2011-09-01 23 views

回答

43

您可以在vim中執行shell命令。這是與從外殼調用php -l filename.php

:!php -l % 

我有這個映射到我的~/.vim/after/ftplugin/php.vim文件,這樣就只需要按下F5:

map <F5> :!php -l %<CR> 
+5

請注意,這將驗證保存的文件,所以如果您有未保存的更改,它將不會看到它們。 – Useless

+0

我們可以使用不同的鍵進行映射:CTRL + P? – Tech4Wilco

+1

@Jimmy,我認爲它會像'map :!php -l%'。 – gpojd

7

使用:make用下面的PHP具體設置:

:set makeprg=php\ -l\ % 
:set errorformat=%m\ in\ %f\ on\ line\ %l,%-GErrors\ parsing\ %f,%-G 

你的語法錯誤將在quickfix窗口。您可以用:copen:cope縮寫打開此緩衝區。如果您只想在窗口出現錯誤時纔打開窗口,請使用:cwindow

您可以使用:cnext和​​在quickfix列表中移動以跳轉到相應的錯誤。我建議蒂姆波普出色的unimpared.vim插件來簡化列表,如[q]q

爲了簡化工作流程,我建議像這樣的一個映射:

nnoremap <f5> :update<bar>make<bar>cwindow<cr> 

現在,你可以只打<f5>和緩衝將被更新(如果需要),LINTED,任何錯誤都出現在quickfix窗口。

爲了使這個功能更強大,請將這些命令添加到~/.vim/after/ftplugin/php.vim。例如~/.vim/after/ftplugin/php.vim

setlocal makeprg=php\ -l\ % 
setlocal errorformat=%m\ in\ %f\ on\ line\ %l,%-GErrors\ parsing\ %f,%-G 
nnoremap <buffer> <silent> <f5> :update<bar>sil! make<bar>cwindow<cr> 

欲瞭解更多信息:

:h quickfix 
:h makeprg 
:h errorformat 
+0

當我運行此代碼時,它可以工作,但會使緩衝區完全變爲空白。 –

+0

提供的映射將只寫入緩衝區*,如果需要的話),lint通過makeprg,然後在出現錯誤時顯示quickfix窗口。除了可能將其寫入磁盤之外,它不會以任何方式對緩衝區進行任何更改。有沒有機會看到空白的quickfix窗口? –

0

對於剛剛語法高亮(什麼有時會有關錯誤的線索)一尚未保存的文件(通常是vim上的黑白文件)只需輸入語法文件即可:

:source $VIMRUNTIME/syntax/[the syntaxfile].vim 

例子

:source $VIMRUNTIME/syntax/sh.vim 
:source $VIMRUNTIME/syntax/php.vim 
:source $VIMRUNTIME/syntax/javascript.vim 
0

你應該嘗試像Neomake插件。它會顯示每個PHP語法錯誤的裝訂錯誤標記。去上線查看錯誤本身。您還可以將其鏈接到PHP Mess detectorPHP Stan,以向您展示錯誤和可能的代碼改進。

這個組合非常強大!

如果您有興趣,我寫了一篇文章如何製作Vim PHP IDE。這基本上是你應該嘗試的基本插件列表! Neomake當然是其中的一部分。