Vim: неопределенные переменные не помечены
В последнее время я допустил пару ошибок при рефакторинге в Vim, результатом были неопределенные и неиспользуемые переменные. Любая приличная IDE (например, NetBeans) пометила бы их как таковые, но я еще не сталкивался с плагином Vim, который делает то же самое.
Кто-нибудь может мне помочь? Я в основном программирую на PHP.
5 answers
Вы можете запустить анализатор PHP-кода Zend из VIM. В настоящее время я этим занимаюсь. Загвоздка в том, что анализатор кода Zend больше не упаковывается в отдельный двоичный файл при установке 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. Он поместит результаты в список местоположений - :местоположение справки. Вы можете прокрутить список местоположений и нажать ввод в строке, и это приведет вас к этой строке в вашем файле. Если он ничего не найдет, то ничего и не откроет.
Там должно быть решение с Синтаксическимплагином, на который вам нужно было бы поставить статический анализатор кода PHP, такой как PHPLint.
Однако я никогда не тратил некоторое время на то, чтобы проверить это!
Другие программы PHP можно найти на этом ТАК что отвечайте.
Ну, возможно, это не то, что вы ищете, но если вам нужны привязки клавиш Vim (я знаю, что они мне нужны), то jVi переносит это в NetBeans. Я не знаю, является ли это приемлемым вариантом для вас, но, возможно, это поможет.
При переименовании vars во всем файле введите в строке vi cmd:
:%s/\$Старое имя/\$новое имя/
При переименовании строки между 14 и 21 (например, внутри функции) введите
: 14,21с/\$Старое имя/\$новое имя/
При рекурсивном переименовании vars в каталоге введите в строке vi cmd:
:!найти имя ДИРЕКТОРИИ_ПУТЯ "*.php"|xargs sed-ni 's/\$Старое имя/\$новое имя/'
Сделайте резервную копию папки раньше, чтобы избежать головной боли. ;)
Я не уверен, насколько умен этот плагин, но, похоже, он делает то, что вы хотите: https://github.com/vim-scripts/php_localvarcheck.vim