如何在VIM中显示phpcs的结果?

Mat*_*att 6 php vim codesniffer

我目前正在尝试在vim中使用PHP Codesniffer(PEAR)来处理PHP文件.我找到了2个站点,可以将代码添加到$HOME/.vim/plugin/phpcs.vim文件中.我添加了代码,我"认为"它正在工作,但我看不到结果,我只看到vim最底部的一行说,(1 of 32)但我看不到32个错误中的任何一个.

这是我的.vimrc文件

" Backup Options -> Some People may not want this... it generates extra files
set backup      " Enable Backups
set backupext=.bak  " Add .bak extention to modified files
set patchmode=.orig " Copy original file to with .orig extention Before saving.

" Set Tabs and spacing for PHP as recomended by PEAR and Zend
set expandtab
set shiftwidth=4
set softtabstop=4
set tabstop=4

" Set Auto-indent options
set cindent
set smartindent
set autoindent

" Show lines that exceed 80 characters
match ErrorMsg '\%80v.\+'

" Set Colors
set background=dark

" Show a status bar
set ruler
set laststatus=2

" Set Search options highlight, and wrap search
set hls is
set wrapscan

" File Type detection
filetype on
filetype plugin on

" Enable Spell Checking
set spell

" Enable Code Folding
set foldenable
set foldmethod=syntax

" PHP Specific options
let php_sql_query=1     " Highlight sql in php strings
let php_htmlInStrings=1 " Highlight HTML in php strings
let php_noShortTags=1   " Disable PHP Short Tags
let php_folding=1       " Enable Ability to FOLD html Code
Run Code Online (Sandbox Code Playgroud)

我已经尝试了两个不同版本的phpcs.vim,我得到了相同的结果:

版本1(在:VIM和PHP IDE中找到)

function! RunPhpcs()
    let l:filename=@%
    let l:phpcs_output=system('phpcs --report=csv --standard=YMC '.l:filename)
"    echo l:phpcs_output
    let l:phpcs_list=split(l:phpcs_output, "\n")
    unlet l:phpcs_list[0]
    cexpr l:phpcs_list
    cwindow
endfunction

set errorformat+=\"%f\"\\,%l\\,%c\\,%t%*[a-zA-Z]\\,\"%m\"
command! Phpcs execute RunPhpcs()
Run Code Online (Sandbox Code Playgroud)

版本2 :( 在VIM中的集成PHP代码中找到)

function! RunPhpcs()
    let l:filename=@%
    let l:phpcs_output=system('phpcs --report=csv --standard=YMC '.l:filename)
    let l:phpcs_list=split(l:phpcs_output, "\n")
    unlet l:phpcs_list[0]
    cexpr l:phpcs_list
    cwindow
endfunction

set errorformat+="%f"\\,%l\\,%c\\,%t%*[a-zA-Z]\\,"%m"
command! Phpcs execute RunPhpcs()
Run Code Online (Sandbox Code Playgroud)

这两者都产生相同的结果.

phpcs安装在我的系统上,我能够在vim之外生成结果.任何帮助将不胜感激我只是学习更多关于vim ...

cwe*_*ske 4

将 Matt 的评论转换为答案,以从未回答的问题列表中获取它:


有两个问题。

  1. 我没有cs名称YML,我不得不将其更改为PHPCS,
  2. 我不知道如何滚动列表:cl-> 列出屏幕上的所有错误;:cnext-> 显示下一个错误。

所以现在他们两个之间就可以了。感谢您的阅读,希望它能帮助别人。