2010-09-07 22 views
11

Ultimamente ho fatto un paio di errori durante il refactoring in Vim, il risultato erano variabili non definite e non utilizzate. Qualsiasi IDE decente (come NetBeans) li contrassegnerebbe come tali, ma non ho ancora trovato un plug-in Vim che faccia lo stesso.Vim: le variabili non definite sono deselezionate

Qualcuno può darmi una mano? Sto principalmente programmando in PHP.

+0

mi manca una soluzione ... – pestaa

+2

Vim di solito non include quei tipi di funzionalità poiché prendono un bel po 'di CPU per controllare il codice, e PHP è un linguaggio dinamico che lo rende ancora più difficile. –

+0

Mi sono reso conto che Vim ha migliori funzionalità in altre aree, ma date le risorse che possiamo fornire controllando anche gli script dinamici oggigiorno mi ha fatto desiderare un po 'più di codifica interattiva, se capisci cosa intendo. – pestaa

risposta

1

È possibile eseguire l'analizzatore di codice PHP di Zend dall'interno di VIM. Attualmente lo faccio. Il problema è che Zend Code Analyzer non è più confezionato come binario separato durante l'installazione di Zend Studio. Non sono sicuro di quale sistema operativo stai utilizzando. Sono in esecuzione su OS X. Se non si dispone già del file binario, utilizzare i passi 1 & 2 su questo sito per ottenerlo - http://michalf.me/blog:zend-code-analyzer-in-textmate. Potrebbe essere necessario regolare il sistema operativo.

Dopo aver ottenuto il binario, aggiungere quanto segue al proprio .vimrc e sostituire/usr/local/... con il percorso del proprio 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> 

Ora quando si inserisce F7 verrà eseguito make che è impostato per eseguire ZendCodeAnalyzer. Metterà i risultati in un elenco di posizioni: posizione di guida. Puoi scorrere l'elenco delle posizioni e premere invio su una riga e ti porterà a quella riga nel tuo file. Se non trova nulla, allora non aprirà nulla.

2
Ci

dovrebbe essere una soluzione con il plugin Syntastic, su cui si avrebbe bisogno di mettere un analizzatore di codice PHP statico come PHPLint.

Tuttavia non ho mai trascorso un po 'di tempo per testare questo!

Altri programmi PHP possono essere trovati su questo SO answer.

+0

Ho cercato Syntastic, vediamo cosa posso inventare ... Grazie per i link! – pestaa

0

Quando si rinomina Vars in un tipo di file intero in vi linea di cmd:

:% s/\ $ oldName/\ $ newName/

Quando si rinomina la tra la linea 14 e 21 (ad esempio, all'interno di una funzione) digitare

: 14,21s/\ $ oldName/\ $ newName/

Quando si rinomina Vars ricorsivamente in un tipo di directory in vi linea di cmd:

: trovare percorso_directory -name "* .php" | xargs sed -ni 's/\ $ oldName/\ $ newName /'

Fai un backup della cartella, prima per evitare il mal di testa. ;)

+0

La sua domanda non riguardava il refactoring, credo, ma piuttosto la rilevazione di errori come variabili non definite. – Drasill

+0

Invece di fare il backup, tenerlo sempre sotto controllo di versione. Oltre a ciò la risposta non si riferisce alla domanda. –

1

Bene, questo potrebbe non essere quello che stai cercando, ma se devi avere i tasti di Vim (so che ne ho bisogno), quindi lo jVi lo porta a NetBeans. Non so se questa sia una valida opzione per te, ma forse questo ti sarà d'aiuto.

+0

Provato, mi dà quasi zero potenza della piattaforma originale. Grazie comunque. – pestaa

+0

È interessante. Quanto tempo fa lo hai provato? Devo ancora imbattersi in una funzionalità in Vim che uso su base ragionevolmente frequente che non è implementata in jVi. Devi essere un vero utente Vim power. Comunque, come ho detto, probabilmente non è quello che stai cercando. –

+0

Era come un anno fa. jVi implementa solo collegamenti di modifica di base, il che è bello, ma mi mancheranno i plug-in, i buffer, gli elenchi di posizioni, la barra di stato configurabile e la stretta integrazione con la riga di comando. Solo per citarne alcuni. Vi consiglio di provare Vim fuori da Netbeans e scoprire le sue possibilità confusionamente infinite. – pestaa

Problemi correlati