Vim: неопределенные переменные не помечены


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

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

Author: Idan K, 2010-09-07

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. Он поместит результаты в список местоположений - :местоположение справки. Вы можете прокрутить список местоположений и нажать ввод в строке, и это приведет вас к этой строке в вашем файле. Если он ничего не найдет, то ничего и не откроет.

 1
Author: Brian, 2010-09-22 02:29:55

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

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

Другие программы PHP можно найти на этом ТАК что отвечайте.

 3
Author: Drasill, 2017-05-23 10:32:46

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

 1
Author: David Hollman, 2010-09-13 18:09:41

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

:%s/\$Старое имя/\$новое имя/

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

: 14,21с/\$Старое имя/\$новое имя/

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

:!найти имя ДИРЕКТОРИИ_ПУТЯ "*.php"|xargs sed-ni 's/\$Старое имя/\$новое имя/'

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

 0
Author: hek2mgl, 2010-09-10 09:00:06

Я не уверен, насколько умен этот плагин, но, похоже, он делает то, что вы хотите: https://github.com/vim-scripts/php_localvarcheck.vim

 0
Author: Marlun, 2013-01-16 17:08:54