2009-10-21 16 views
11

Ho letto un mucchio di blog sulla supposta grande ricompensa omnicomprensiva di Vim, e tuttavia non importa quello che faccio, non riesco a farlo funzionare in modo soddisfacente. Mi ci sono voluti anni per capire che la versione di ctags preinstallata sul mio sistema era quella di emacs, e non avevo l'opzione --recurse, ma ora che ho eseguito ctags-exuberant sulla mia copia di OpenJDK fonti per tentare di ottenere una sorta di completamento del codice in corso, Vim si blocca ogni volta che provo a invocarlo con [Cn] o [Cp].Vim omnicompletion for Java

Tutto ciò che voglio veramente è qualcosa che funziona come il completamento del codice in Eclipse; Mi piace Vim come editor, ma Eclipse ha solo le caratteristiche extra che out-of-the-box con cui Vim sembra fallire. Eclipse con un plug-in vi-mode non mi è stato particolarmente utile ed è troppo di memoria e CPU hog per essere di qualche utilità; anche a eclim non piaccio molto.

Qualcuno può suggerire un modo più semplice per ottenere una sorta di completamento del codice funzionante in Vim che funzioni effettivamente?

risposta

8

Ecco una caratteristica "JDE" per vim: http://www.vim.org/scripts/script.php?script_id=1213 Una delle caratteristiche elencate è "completamento del codice (che lavora per Java e JSP, taglib, HTML, XML, XSL, XSD) (VIM 7.0 richiesto)"

e qui è uno script Java completamento automatico: http://vim.sourceforge.net/scripts/script.php?script_id=1785

Questo non è Java, ma ho trovato ad essere abbastanza chiaro e comprensibile; forse varrebbe la pena leggerlo. Ecco una ricetta sull'impostazione del completamento automatico per Drupal. Uno script AWK personalizzato crea un dizionario di completamento automatico per Vim. http://www.thingy-ma-jig.co.uk/blog/18-08-2009/drupal-autocomplete-vim

Buona fortuna.

+1

Grazie per i vostri suggerimenti. Hai provato JDE e ti sei completato? Qual è la tua preferenza? Ho provato javacomplete ma non sempre funziona per me (non ho scavato nel perché). Vado a dare un'occhiata a JDE! – Hannes

1

Avendo lo stesso desiderio, è stato realizzato utilizzando eclim. Funziona davvero molto bene.

5

ho avuto un andare con eclim:

http://eclim.sourceforge.net/

Qualche tempo fa, è praticamente corre eclissi in background e quindi fornisce un plugin vim, che consente di ottenere a tutte le funzionalità di eclisse all'interno vim. Quindi puoi fare refactoring, completamento, ecc. Sembra funzionare abbastanza bene se non ti dispiace eseguire un enorme processo di eclissi in background sul tuo sistema.

Ho completato il lavoro abbastanza bene in C++ (Better than Vis stud comunque) ma non ho mai avuto molta fortuna con java. In questi giorni tendo ad usare eclipse per la maggior parte del tempo, ma ho gvim --remote impostato come comando esterno in eclipse in modo che possa semplicemente cancellare il buffer corrente in vim ogni volta che voglio.

+1

A proposito, l'ultimo para si riferiva al completamento di omni costruito da vim, non eclim. – Benj

1

Ho cercato questo, così come sto considerando di passare da Eclipse a Vim. La soluzione migliore che ho trovato finora è quella di portare vim ad eclissi con il vrapper (http://vrapper.sourceforge.net/). Offre molte delle funzionalità di vim per l'editor di eclipse e puoi ancora utilizzare il completamento automatico e tutte le altre funzionalità di Eclipse.

Sono ancora interessato a spostarsi completamente, ma sembra difficile battere eclissi per un ambiente di sviluppo java. (basta odiare l'overhead per eclissi!)

+0

Suggerimento: vrapper ha il completamento [C-p].Hai solo bisogno di disabilitare il comando di stampa (doppio CTRL + MAIUSC + L, cerca CTRL + P). Chi ha mai bisogno di stampare il codice comunque? – Dacav

+0

In generale ho notato che è possibile ottenere un comportamento molto simile a vim eliminando le associazioni di tasti predefinite, che hanno la priorità rispetto a quelle definite da vrapper. – Dacav