2011-08-31 7 views
9

Ho cercato di impostare il completamento automatico di Vim per il codice Ruby e non ho avuto successo. Voglio dire che le cose funzionano, ma mi aspetto che siano disponibili un plugin o una configurazione migliori.C'è un modo per impostare un buon completamento automatico per Ruby in Vim?

Ho impostato il plugin rubycomplete e sta facendo un lavoro decente, ma nulla rispetto a un IDE come RubyMine. Era solo una boccata d'aria fresca, una volta installato, vedevo cosa mi mancava. È ben consapevole della sintassi, del contesto e di solito mostra solo le possibili opzioni pertinenti.

Forse non ho appena impostato le cose correttamente. È stato impossibile trovare un tutorial, un post sul blog, una buona documentazione su come andare su questo (soprattutto uno che è aggiornato). A volte si scopre che ci sono diversi strumenti e configurazioni e non molte spiegazioni su come procedere.

C'è uno standard di comunità per questo tipo di cose? Quali sono gli strumenti migliori per raggiungere questo obiettivo? Qualche buon tutorial, fonte, indizi su come procedere?

Continuo a sentire le persone dire che preferiscono Vim su un IDE come Rubymine e che possono ottenere più o meno lo stesso comportamento su molti aspetti con la corretta configurazione del plugin, ma la mia esperienza non è stata la stessa. Voglio davvero continuare a utilizzare Vim perché è più leggero e adoro l'editor, ma la produttività è la cosa più importante e sto sprecando troppo tempo a leggere i post dei blog di 3 e 4 anni fa su come impostarlo.

+0

Ci sono pochissimi IDE con il completamento automatico di Ruby .. soprattutto perché Ruby è così dinamico che è difficile da fare. L'unico IDE che ho visto con il supporto automatico completo di Ruby è stato KomodoEdit, e di solito non era utile – Earlz

+0

Non vedo un elenco di requisiti nella tua domanda. Cosa vuoi che l'omni-complete di vim faccia così? Non sono affatto interessato a Ruby, quindi non penso di poter essere di grande aiuto, ma puoi rendere la tua domanda più precisa? – romainl

+0

Domanda simile qui: http://stackoverflow.com/q/4824507/513198 –

risposta

1

Per la maggior parte delle operazioni in cui è richiesta una conoscenza approfondita della lingua, generalmente trovo che Vim sia carente rispetto a un IDE dedicato.

Ad esempio, non è possibile effettuare automaticamente il refactoring del codice utilizzando scope (cambiando foo() in bar() nella classe Monkey ma non in classe Ape nell'intero progetto).

Analogamente, il completamento automatico non è sempre intelligente. Penso che per C/C++ la situazione sia tollerabile grazie a strumenti come clang_complete. Ma per Java, o linguaggio meno popolare, ho avuto la sensazione che lo script di completamento non sia all'altezza del compito. Quindi finisci per passare un sacco del tuo tempo ad armeggiare con gli script. Il problema è che per un buon completamento automatico è necessario sfruttare tutta la potenza di un interprete o compilatore, e apparentemente non è facile da fare.

Continuo a utilizzare Vim principalmente perché sono più efficiente modificare un blocco di codice ma quando la situazione lo richiede, utilizzo anche un IDE accanto a Vim.

Non conosco la situazione specifica di Ruby completata, ma non sono sicuro che otterrete una risposta positiva.

Il mio sogno sarebbe che ogni IDE avesse un completo modalità di input.

+2

Ecco perché preferisco l'emulazione vim, ad esempio ViEmu in Visual Studio. Ottieni il meglio da entrambi i mondi. – Earlz

+0

@Earlz: Sto usando Viper in Eclipse, è bello, ma è anche un'implementazione completa. –

2

È possibile, in modalità inserimento, premere Ctrl + x, quindi Ctrl + o (omni) per ottenere un elenco di metodi Ruby. Se avete già digitato alcuni caratteri es ea otterrete each, each_with_index ecc

Nel mio vimfiles hanno Tab mappato a completare con un'altra parola nel buffer.

Non è grande come un IDE, ad esempio Netbeans o Rubymine, ma funziona abbastanza bene.

Dopo aver premuto Ctrl + x ci sono altre combinazioni che è possibile utilizzare con parole, linee, ecc.

C'è anche eclimd che utilizza un Eclipse senza testa per fornire il completamento automatico ma non sono mai riuscito a capire come farlo funzionare. Installare e collegare Vim a Eclipse è abbastanza facile, ma dopo ...

Lo snipmate potrebbe essere un'alternativa, ea<tab> con espandibile a each { |element| }.

Problemi correlati