回答
您可以在vim中執行shell命令。這是與從外殼調用php -l filename.php
:
:!php -l %
我有這個映射到我的~/.vim/after/ftplugin/php.vim
文件,這樣就只需要按下F5:
map <F5> :!php -l %<CR>
使用: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
當我運行此代碼時,它可以工作,但會使緩衝區完全變爲空白。 –
提供的映射將只寫入緩衝區*,如果需要的話),lint通過makeprg,然後在出現錯誤時顯示quickfix窗口。除了可能將其寫入磁盤之外,它不會以任何方式對緩衝區進行任何更改。有沒有機會看到空白的quickfix窗口? –
對於剛剛語法高亮(什麼有時會有關錯誤的線索)一尚未保存的文件(通常是vim上的黑白文件)只需輸入語法文件即可:
個:source $VIMRUNTIME/syntax/[the syntaxfile].vim
例子
:source $VIMRUNTIME/syntax/sh.vim
:source $VIMRUNTIME/syntax/php.vim
:source $VIMRUNTIME/syntax/javascript.vim
你應該嘗試像Neomake插件。它會顯示每個PHP語法錯誤的裝訂錯誤標記。去上線查看錯誤本身。您還可以將其鏈接到PHP Mess detector和PHP Stan,以向您展示錯誤和可能的代碼改進。
這個組合非常強大!
如果您有興趣,我寫了一篇文章如何製作Vim PHP IDE。這基本上是你應該嘗試的基本插件列表! Neomake當然是其中的一部分。
- 1. UNIX/vim - 驗證語法錯誤
- 2. PHP語法驗證器?
- 3. Vim語言特定的語法驗證器?
- 4. 用於驗證JavaScript語法的PHP類
- 5. 驗證語法
- 6. VIM php語法錯誤
- 7. 亮點PHP語法VIM
- 8. HTML5語法驗證
- 9. 驗證bash語法
- 10. PHP中的表單驗證 - switch語句
- 11. 驗證句子的語法
- 12. PHP驗證算法
- 13. Vim中的語法提示
- 14. 驗證Windows中的tnsnames.ora語法
- 15. 在Java中的XML語法驗證
- 16. 驗證整個目錄中的PHP語法,xargs
- 17. 需要驗證mysql和PHP中空reult的編碼語法
- 18. 自動觸發TextMate中的語法驗證PHP軟件包
- 19. 驗證if語句的語法
- 20. PHP驗證 - 表單無法驗證
- 21. Vim vim-javascript不能語法
- 22. laravel驗證語法錯誤
- 23. 驗證C#語法與C#
- 24. jQuery驗證器addMethod語法
- 25. 語法錯誤驗證tweepy
- 26. 驗證在軌語法3
- 27. 驗證語法是LL(1)
- 28. 驗證Hive HQL語法?
- 29. EYAML語法驗證程序?
- 30. perlcritic:不驗證語法
請注意,這將驗證保存的文件,所以如果您有未保存的更改,它將不會看到它們。 – Useless
我們可以使用不同的鍵進行映射:CTRL + P? – Tech4Wilco
@Jimmy,我認爲它會像'map:!php -l%'。 –
gpojd