2010-02-15 6 views
24

Realizzo lo sviluppo di Ruby on Rails praticamente esclusivamente. Attualmente sviluppo in OS X utilizzando TextMate. Ho una macchina virtuale in esecuzione per emulare il più fedelmente possibile l'ambiente in cui verrà distribuita la mia app, e monto il codice su una condivisione Samba in OS X dal guest VM. Da lì apro con TextMate e codice via.Pensando di passare da TextMate a vim per Rails dev. Di cosa ho bisogno?

Sto iniziando a pensare che con i plugin corretti e il tempo dedicato all'apprendimento, potrei essere molto più produttivo in vim direttamente sulla VM. In questo momento il mio TextMate è fondamentalmente di serie, anche se trovo indispensabile il plugin ProjectPlus. Quello che sto cercando sono alcuni suggerimenti di risorse vim e plugin (se questa è la terminologia giusta) per emulare da vicino le funzionalità che non sono disposto a rinunciare a TextMate. O almeno, motivi convincenti per cui dovrei essere disposto a rinunciarvi. Ecco una breve lista:

  • Possibilità di avere un albero di progetto (preferibilmente) pieghevole visibile in qualsiasi momento o facilmente commutabile.
  • Possibilità di visualizzare lo stato di SCM a colpo d'occhio, all'interno dell'albero del progetto (preferibile) o in altro modo. (Io uso Git quasi esclusivamente se questo fa alcuna differenza.)
    • Essere in grado di visualizzare un diff side-by-side da dentro vim sarebbe troppo grande
  • capacità di cercare attraverso l'intero progetto Will (suppongo :stop; grep -nr; fg; dovrebbe raggiungere questo obiettivo, a meno che non ci sia un modo migliore per farlo.)
  • completamento del codice, se possibile

risposta

27

Il plugin NERD Tree ti dà una struttura di progetto pieghevole. Personalmente, trovo che il plugin netrw sia più che sufficiente, e questo di solito viene installato con Vim.Mentre l'albero NERD sembra come se cercasse di emulare il comportamento di altri IDE (e il cassetto del progetto di TextMate), sento che il plugin netrw fa le cose in modo Vim. Ti suggerisco di provare entrambi e vedere quale preferisci.

Il fugitive plugin fornisce un'interfaccia git a Vim (Vedi Vimcasts: parti 1, 2, 3, 4 e 5).

Il plug-in ack è ottimo per la ricerca di un intero progetto. Ti consigliamo di leggere l'elenco di Vim quickfix per ottenere il massimo da questo.

completamento delle parole di TextMate è innescato con esc, e spostamento - esc. In Vim, si ottiene simile autocomplete funzionalità utilizzando ctrl - n e ctrl - p in modalità di inserimento. Controlla :help ins-completion per (molto!) Maggiori informazioni.

Sto eseguendo una serie di screencast sull'apprendimento di Vim su vimcasts.org. Il mio background è con TextMate, ma ho usato Vim fulltime per un po 'ora. Mentre scrivo, ho solo 6 episodi, ma pianifico di coprire ciascuno dei punti che hai sollevato negli episodi futuri. Proverò a tornare a modificare questa risposta con i link agli screencast non appena saranno disponibili.

1

Questo screencast è grande pure http://blip.tv/file/1372096

Io faccio uso VIM e appositamente come come ruotare da modello/vista e il controller connessi ..

1

Cerca un intero progetto here.

completamento del codice : normalmente con ctrl - X poi ctrl - O mentre in ins modalità ert.

Git Integrazione: git.vim

Tree Project: Nerdtree.vim

Buona fortuna

2

Si potrebbe voler iniziare con il mio Ruby/Rails relativo vimfiles che include il supporto per rvm e git.

4

Per la navigazione dei file è semplicemente amore CommandT
Questo funziona in modo molto simile alla funzione di comando amata in Textmate.

1

Tutte le altre risposte più:

capacità di avere una (preferibilmente) albero del progetto comprimibile visibile sia in ogni momento o facilmente ginocchiera grado.

  • Il plugin project.vim in realtà non funziona come cassetto Progetto di TextMate ma è vicino.
  • Con NERDTree, puoi impostare i segnalibri e farlo funzionare un po 'come un cassetto del progetto.
  • :help mkview e :help mksession possono essere d'aiuto.

Possibilità di visualizzare lo stato SCM a colpo d'occhio, o in questo albero del progetto (preferibile) o in altro modo. (Uso git quasi esclusivamente se questo fa alcuna differenza.)

  • vcscommand.vim fornisce lo stesso insieme di comandi per più SCM, funziona con Git, SVN, Mercurial ...
  • È possibile utilizzare il suddetto plug fuggitivo per visualizzare lo stato Git nella riga di stato, :help fugitive-statusline .

La possibilità di visualizzare un diff side-by-side dall'interno vim sarebbe troppo grande

  • fuggitivo fornisce il comando :Gdiff che fa proprio questo.
  • Un plugin rilasciato di recente chiamato Gitv tenta di emulare GitK in Vim. Mi piace molto e l'autore è molto reattivo. Nella vista ad albero, premi <CR> per aprire un commit precedente in un'altra finestra e D per vedere un doppio diff.

completamento del codice, se possibile

  • ci sono un paio di soluzioni, se non ne hai bisogno per essere automatico <C-x><C-o>, <C-n> e <C-p> sarà più che sufficiente, se si vuoi "completamento automatico" puoi provare these few plugins. Il mio preferito è autocomplpop.
0

ho pubblicato un messaggio esteso su questo argomento oggi, in cui spiego come replicare 100 caratteristiche da TextMate all'interno VIM. È il prodotto di una grande quantità di ore di ricerca.

Per esempio spiego:

  • Come replicare un cassetto progetto
  • come gestire le schede
  • Come fare Rails comandi specifici (Lascia la faccia esso: Un sacco di utenti Textmate sono Rails programmatori)
  • Come trovo e sostituisce
  • Come fare ampio progetto ricerche

Lettura articolo originale:Textmate To VIM

Problemi correlati