Подтвердить что ты не робот

Vim: переменные undefined не отмечены

В последнее время я делал пару ошибок при рефакторинге в Vim, результатом был undefined и неиспользуемые переменные. Любая достойная среда IDE (например, NetBeans) будет отмечать их как таковые, но мне еще предстоит встретить плагин Vim, который делает то же самое.

Может ли кто-нибудь помочь мне? Я в основном программирую на PHP.

4b9b3361

Ответ 1

Вы можете запустить анализатор кода Zend PHP из VIM. В настоящее время я это делаю. Захват заключается в том, что Zend Code Analyzer больше не упаковывается как отдельный двоичный файл при установке Zend Studio. Я не уверен, какая ОС вы работаете. Я запускаюсь на 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 на строке, и он перенесет вас в эту строку в вашем файле. Если он ничего не найдет, он ничего не откроет.

Ответ 2

Должно существовать решение с плагином Syntastic, на который вам нужно будет поместить статический анализатор кода PHP, например PHPLint.

Однако я никогда не проводил время, чтобы проверить это!

Другие PHP-программы можно найти в этом SO-ответе.

Ответ 3

Ну, это может быть не то, что вы ищете, но если у вас должны быть Vim keybindings (я знаю, что они мне нужны), то jVi приносит это NetBeans. Я не знаю, является ли это жизнеспособным вариантом для вас, но, возможно, это поможет.

Ответ 4

При переименовании vars в виде целого файла в строке vi cmd:

:% s/\ $Старое_имя/\ $NEWNAME/

При переименовании строк 14 и 21 (например, внутри функции) введите

: 14,21s/\ $Старое_имя/\ $NEWNAME/

При переименовании vars рекурсивно в типе каталога в строке vi cmd:

:! найдите DIRECTORY_PATH -name "*.php" | xargs sed -ni 's/\ $oldName/\ $newName/'

Сделайте резервную копию папки раньше, чтобы избежать головных болей.;)