Vim: переменные undefined не отмечены
В последнее время я делал пару ошибок при рефакторинге в Vim, результатом был undefined и неиспользуемые переменные. Любая достойная среда IDE (например, NetBeans) будет отмечать их как таковые, но мне еще предстоит встретить плагин Vim, который делает то же самое.
Может ли кто-нибудь помочь мне? Я в основном программирую на PHP.
Ответы
Ответ 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/'
Сделайте резервную копию папки раньше, чтобы избежать головных болей.;)
Ответ 5
Я не уверен, насколько интеллектуальным является этот плагин, но он, похоже, делает то, что вы хотите: https://github.com/vim-scripts/php_localvarcheck.vim