2010-02-15 7 views
24

Hago el desarrollo de Ruby on Rails casi exclusivamente. Actualmente desarrollo en OS X usando TextMate. Tengo una máquina virtual ejecutándose para emular lo más cerca posible del entorno en el que se implementará mi aplicación, y monto el código en un recurso de Samba en OS X desde el invitado de la VM. A partir de ahí abro con TextMate y el código de distancia.Pensando en pasar de TextMate a vim para Rails dev. ¿Qué necesito?

Estoy empezando a pensar que con los plugins adecuados y el tiempo dedicado al aprendizaje, podría ser mucho más productivo en vim directamente en la máquina virtual. En este momento, mi TextMate es básicamente de stock, aunque creo que el plugin ProjectPlus es indispensable. Lo que estoy buscando son algunas sugerencias de recursos vim y complementos (si esa es la terminología correcta) para emular de cerca las características que no estoy dispuesto a abandonar en TextMate. O al menos, razones convincentes por las que debería estar dispuesto a renunciar a ellas. Aquí está una breve lista:

  • Posibilidad de tener un árbol de proyecto plegable (preferiblemente) visible en todo momento o fácilmente alternar.
  • Posibilidad de ver el estado de SCM de un vistazo, dentro de este árbol de proyecto (preferible) o de lo contrario. (Yo uso git casi exclusivamente si esto hace alguna diferencia.)
    • Ser capaz de ver un diff de lado a lado dentro de vim sería grande también
  • capacidad de buscar a través de todo el proyecto a (supongo :stop; grep -nr; fg; podría lograr esto, a menos que haya una mejor manera de hacerlo.)
  • finalización de código, si es posible

Respuesta

27

NERD Tree El plugin le da un árbol del proyecto plegable. Personalmente, me parece que el complemento netrw es más que suficiente, y esto generalmente viene instalado con Vim.Mientras que el árbol NERD parece tratar de emular el comportamiento de otros IDEs (y del cajón de proyectos de TextMate), creo que el plugin netrw hace las cosas a la manera de Vim. Te sugiero que pruebes ambos y veas cuál prefieres.

El fugitive plugin proporciona una interfaz git a Vim (Ver Vimcasts: partes 1, 2, 3, 4 y 5).

El complemento ack es ideal para buscar un proyecto completo. Querrá leer en la lista de quickfix de Vim para obtener el máximo provecho de esto.

la terminación de palabras de TextMate se activa con esc, y cambio - esc. En Vim, se obtiene similares autocomplete funcionalidad utilizando ctrl - n y ctrl - p en el modo de inserción. Compruebe :help ins-completion para (mucho!) Más información.

Estoy ejecutando una serie de capturas de pantalla sobre el aprendizaje de Vim en vimcasts.org. Mi experiencia es con TextMate, pero he estado usando Vim a tiempo completo desde hace un tiempo. Mientras escribo esto, solo tengo 6 episodios, pero planeo cubrir cada uno de los puntos que ha planteado en futuros episodios. Trataré de volver a editar esta respuesta con enlaces a las capturas de pantalla a medida que estén disponibles.

1

esta captura de pantalla es grande, así http://blip.tv/file/1372096

hago uso VIM y me gusta especialmente cómo rotar de modelo/vista y el controlador .. relacionados

1

buscar en todo un proyecto here.

Finalización de código : Normalmente hecho con ctrl - X entonces ctrl - O mientras que en ins modo ert.

Git Integración: git.vim

Árbol de proyectos: Nerdtree.vim

Buena suerte

2

Es posible que desee comenzar con mi Ruby/Rails relacionado vimfiles que incluye soporte para rvm y git.

4

Para la navegación de archivos es simplemente amor CommandT
Esto funciona de forma muy similar a la función commandT querida en el compañero de texto.

1

Todas las otras respuestas más:

capacidad de tener una (preferentemente) árbol del proyecto plegable visibles ya sea en todo momento o facilidad de palanca-poder.

  • El plugin project.vim realmente no funciona como cajón del Proyecto de TextMate pero está cerca.
  • Con NERDTree, puede configurar marcadores y hacerlo funcionar un poco como un cajón de proyectos.
  • :help mkview y :help mksession pueden ayudar también.

Capacidad para ver el estado de SMC a simple vista, ya sea dentro de este árbol del proyecto (preferible) o de otra manera. (Yo uso git casi exclusivamente si esto hace alguna diferencia.)

  • vcscommand.vim proporciona el mismo conjunto de comandos para múltiples SCM, funciona con Git, SVN, Mercurial ...
  • Usted puede utilizar el plugin fugitivo antes mencionado para mostrar el estado de Git en la línea de estado, :help fugitive-statusline .

Ser capaz de ver un diff de lado a lado dentro de vim sería genial también

  • fugitivo proporciona el comando :Gdiff que hace precisamente eso.
  • Un complemento recientemente lanzado llamado Gitv intenta emular GitK en Vim. Me gusta mucho y el autor es muy receptivo. En la vista de árbol, pulse <CR> para abrir una confirmación anterior en otra ventana y D para ver una doble diferencia.

Finalización de código, si es posible

  • Hay algunas soluciones, si no lo necesita ser automática <C-x><C-o>, <C-n> y <C-p> será más que suficiente, si quiere "autocompletar", puede intentar these few plugins. Mi favorito es autocomplpop.
0

publiqué un artículo extendido sobre este tema hoy en día, en el que explico cómo replicar 100 características de Textmate dentro VIM. Es el producto de una gran cantidad de horas de investigación.

Por ejemplo explico:

  • Cómo replicar un cajón Proyecto
  • la forma de gestionar las pestañas
  • Cómo hacer Rails comandos específicos (admitámoslo: Una gran cantidad de usuarios Textmate son Rails programadores)
  • Cómo hacer encontrar y reemplaza
  • Cómo hacer el proyecto Demandas de ancho

Leer artículo original:Textmate To VIM

Cuestiones relacionadas