Vim:未定义的变量没有标记

时间:2010-09-07 12:08:58

标签: php vim plugins

最近我在Vim中进行重构时犯了一些错误,结果是未定义和未使用的变量。任何体面的IDE(如NetBeans)都会将它们标记为这样,但我还没有遇到过这样做的Vim插件。

任何人都可以帮助我吗?我主要用PHP编程。

5 个答案:

答案 0 :(得分:3)

应该是Syntastic插件的解决方案,您需要在其上放置一个PHP静态代码分析器,如PHPLint

但是我从来没有花时间来测试这个!

可以在SO answer上找到其他PHP程序。

答案 1 :(得分:1)

嗯,这可能不是你想要的,但是如果你必须拥有Vim键绑定(我知道我需要它们),那么jVi会将此带到NetBeans。我不知道这对你来说是否可行,但也许这会有所帮助。

答案 2 :(得分:1)

您可以在VIM中运行Zend的PHP代码分析器。我现在这样做。问题在于,在安装Zend Studio时,Zend Code Analyzer不再打包为单独的二进制文件。我不确定你在运行哪个操作系统。我在OS X上运行。如果你还没有二进制文件,请使用步骤1& 2,在这个网站上得到它 - http://michalf.me/blog:zend-code-analyzer-in-textmate。您可能需要针对您的操作系统进行调整。

获取二进制文件后,将以下内容添加到.vimrc中,并将/ usr / local / ...替换为ZendCodeAnalyzer的路径。

if !exists("autocommands_loaded")

  let autocommands_loaded = 1
  "PHP Make 
  autocmd BufRead *.inc,*.php set makeprg=/usr/local/bin/ZendCodeAnalyzer\ %
  autocmd BufRead *.inc,*.php set errorformat=%f(line\ %l):\ %m

endif

map <F7> :silent lmake<cr>:lwindow <cr>:redraw!<cr>

现在当你输入F7时,它将运行make,它被设置为运行ZendCodeAnalyzer。它会将结果放入位置列表 - :帮助位置。您可以滚动浏览位置列表并在一行中按Enter键,它将带您进入文件中的该行。如果它没有找到任何东西,那么它将不会打开任何东西。

答案 3 :(得分:0)

在vi cmd行中重命名整个文件类型的vars:

  

:%S / \ $使用oldName / \ $了newName /

重命名第14行和第21行之间(例如在函数内)时输入

  

:14,21s / \ $使用oldName / \ $了newName /

在vi cmd行中的目录类型中递归重命名vars时:

  

:!找到DIRECTORY_PATH -name“* .php”| xargs sed -ni的/ \ $ oldName / \ $ newName /'

之前备份文件夹以避免头痛。 ;)

答案 4 :(得分:0)

我不确定这个插件有多聪明,但似乎可以做你想做的事:https://github.com/vim-scripts/php_localvarcheck.vim