2011-08-01 23 views
10

He estado utilizando IDEs como NetBeans durante bastante tiempo. NetBeans tiene un buen complemento de control de versiones. Cuando tengo varios proyectos y trabajo simultaneamente con ellos, puedo elegir proyectos específicos para comprometerlos al destacarlos y dejar a otros fuera. Además, el cuadro de confirmación me permite sacar fácilmente los archivos no deseados para la confirmación. No pude encontrar complementos equivalentes para Vim.¿Hay un buen complemento de subversión para Vim?

He usado Nerdtree; aunque es bueno para la navegación del proyecto, no me muestra qué carpeta/archivos ha sido modificada. En Netbeans muestra un icono azul/verde al lado de la ruta del árbol afectado.

Hay otras características que me gustan de la GUI, pero no voy a enumerarlas todas aquí.

Realmente quiero cambiar a Vim, pero esto me está deteniendo. ¿Alguien podría sugerir un complemento similar para Vim?

ACTUALIZACIÓN: ya que este fue levantado hace 3 años, he dejado de usar la subversión de un tiempo atrás y comenzó a usar GIT, el plugins que estoy usando con vim tiene Git Support (fugitivo)

+0

no saben acerca de los plugins vim, pero hay un buen complemento editor vim-como para Eclipse (Vrapper - vrapper.sourceforge.net) –

+0

No creo que existe un plugin que es nerdtree con resaltado de archivos que han cambiado. Sin embargo, hay plugins para facilitar la modificación de 2 revisiones dentro de vim. Supongo que no quieres eso sin embargo. – giltanis

Respuesta

6

Sólo tiene que utilizar la cáscara apropiada comandos (svn commit, svn update, etc). Realmente no tendría sentido tener un plugin SVN para vim. Incluso puede ejecutar comandos de shell desde vim. Por ejemplo:

:! svn update 

Aunque no estoy seguro de que eso suponga una ventaja significativa en el caso de SVN.

Si quiero "hacer trampa" y ver la estructura de directorios gráficos, a veces abro Subclipse en Eclipse, pero no hay absolutamente ninguna necesidad de eso.

Para empezar con vim, basta con abrir un terminal en una máquina con Vim se instala y ejecuta:

vimtutor 

se le marcha y funcionando en poco tiempo.

+1

Eso es todo, y la forma correcta de pensar, también. @James Lin en el mundo de IDE tienes que descargar un complemento para hacer cualquier cosa. En el mundo de Vim, necesitas aprender el comando y/o vincularlo a un comando. – Josh

+0

Sí, sé que dentro de vim se pueden ejecutar comandos externos, pero no ayuda en este caso. Digamos que tengo 3 proyectos cambiados de código, tengo un ticket para confirmar el código, que es el proyecto 1 y 3, para confirmar los cambios del código en una revisión, tendré que ejecutar svn commit en la carpeta raíz, que incluye proyecto 2 cambios, ahora ¿cómo puedo sacar fácilmente los archivos en el proyecto 2 en la lista de compromisos? –

+0

Ha pasado un tiempo desde que utilicé svn (migrado a git), pero es posible que deba ejecutar dos comandos de confirmación, uno para cada directorio. De lo contrario, puede haber una manera de asignar dos directorios con un comando. No es necesario confirmar el directorio raíz y excluir explícitamente uno de los subdirectorios (a menos que, por supuesto, esto termine siendo más fácil). – mattkelly

0

para tareas simples, usted debe seguir el consejo de mattkelly:

:!svn co path/to/repo . 
:!svn add . 
:!svn commit -m 'first commit' 
:!svn update 

Sin embargo, puede tener más sentido para salir de la manipulación de archivos de herramientas diseñadas específicamente para eso.

Hay plugins SVN explorador de archivos disponibles para Windows, Mac OS X y Linux. Son lo suficientemente potentes como para manejar la mayoría de las situaciones con facilidad.

Si tiene que lidiar con situaciones realmente complejas, ¿consideró herramientas gráficas especializadas como RapidSVN o SmartSVN u otras?

4

Existen algunos complementos de vim para la subversión, aunque es cierto que ninguno de ellos ofrece la integración completa de IDE que le gustaría. Mucho más se puede hacer con git ya que es inherentemente más flexibles y, si tienes curiosidad, fugutive es un muy buen complementopara ello: http://vimcasts.org/blog/2011/05/the-fugitive-series/

Pero, al grano. Aquí hay algunos complementos que pueden ayudar con su solicitud específica y algunos más en general:

  • Sandbox: http://www.vim.org/scripts/script.php?script_id=2468.No hace exactamente lo que pediste, pero podrías usarlo para el mismo propósito. Siempre que desee ver el estado del repositorio y confirmar los archivos de forma selectiva, puede ejecutar el comando Sandbox y seguir las instrucciones. Sin embargo, el script dice "solo Linux". No mencionó qué sistema operativo está usando, así que si está en Windows, no sé si funcionará correctamente.
  • VCSCommand: http://www.vim.org/scripts/script.php?script_id=90. Este te da diffs, registra en un archivo específico, culpa, revertir y algunas otras cosas. La interfaz consiste en comandos o mapeos.
  • svn_commit: http://www.vim.org/scripts/script.php?script_id=1451. Una secuencia de comandos muy pequeña que "recuerda" el último mensaje de confirmación, por lo que si cancela el compromiso de agregar/eliminar archivos, no tiene que volver a escribirlo.

De nuevo, probablemente no obtendrá la integración que desea. Vim es muy flexible, pero algunas funciones IDE son difíciles de trabajar en él. Puedo ver una posible solución, pero requeriría un tiempo para escribir y probar correctamente. Lo siento, pero tendrás que adaptarte al uso del cliente de línea de comandos, como sugiere @mattkelly, o considerar el uso de un programa externo para hacer frente a la comisión, siguiendo el consejo de @romainl.

3

Recomiendo VCSCommand. Tiene mapeos convenientes listos para usar, y funciona con svn, git y hg. Sin embargo, realmente no tiene una "GUI" per se; No creo que encuentres muchos recursos orientados a vim que sí lo hagan.

1

En primer lugar, estoy totalmente de apoyo a la respuesta de @ matkelly: No es necesario ningún plugin para usar SVN desde el interior de VIM.

Como usuario de vim ávido, me gustaría dar algunos consejos sobre el uso de vim como un IDE junto con la integración de subversión. Tengo algunas instantáneas que acabo de tomar de mi pantalla vim para que tenga una visual.

Vengo de un eclipse de fondo. Aunque ahora codigo principalmente en VIM en mi estación de trabajo de Fedora. Todavía uso eclipse para ciertas tareas que son buenas, como la integración de Mylyn/Tasktop (a través de Planning Perspective) que se integra con subversión y bugzilla para ayudarme a escribir mensajes de confirmación específicos de la tarea.

En VIM, para interactuar con SVN (sin dolor y tareas generales de la cáscara para el caso) que necesita saber algunos atajos:

consigo los registros para el archivo actualmente estoy trabajando con:

:!svn log -l3 % 

'%' es un atajo especial que se reemplaza con la ruta actual del archivo. El comando anterior enumera los últimos 3 mensajes de registro para este archivo actual.

¿Adivina qué hace este comando?

:!svn diff % 

'%: h' le da el directorio actualmente archivo está en:

:!svn status %:h 

Mientras estoy en el tema, aquí hay algunas sugerencias para los nuevos usuarios de vim que quieren hacer un interruptor desde un GUI-IDE a vim y tiene dificultades para navegar a través de miles de archivos de proyecto:

Recomiendo el plugin NERDTree, que abre un árbol de directorios IDE y ubica su archivo actual en el árbol. Solo me sirve en raras ocasiones (eliminar, copiar, mover archivos o configurar mi directorio de trabajo actual).Pero si todo lo que quiero eran para localizar un archivo específico entre cientos de archivos en mi proyecto, sólo tiene que escribir:

:find Inventory.pm 

Lo interesante es, que puedo escribir el nombre de archivo parcial y pulsa [TAB], que se expande el archivo nombre para mi !!! Si hay varias coincidencias, simplemente repite la lista hasta que encuentre la que quería decir.

Este es el primer comando que inicia mi sesión de codificación; I CD a la carpeta raíz de mi proyecto (dado que la configuración 'ruta' de vim está establecida en '.'), Inicie VIM y escriba :find Filename. Ningún IDE de GUI que he usado podría llevarlo a cabo tan rápido. Luego, si quería navegar por la carpeta de mi proyecto, simplemente presiono F10, que se asigna a NERDTreeFind, y uso los comandos de VIM jklm para navegar por la estructura del directorio.

Cuando tengo varios búferes (archivos) abiertos en VIM, para navegar por búferes abiertos fácilmente uso "Buffer Explorer".

Cuando estoy escribiendo un método o una palabra clave en VIM, escribo "CTRL-N", lo que abre la lista de etiquetas (tengo una configuración de cetáceos exuberante a través de cron).

El complemento "Lista de etiquetas" también es obligatorio, lo que abre la lista de funciones/métodos en el búfer en uso, ubica el método en el que se encuentra actualmente y se enfoca en él.

VIM Screenshot1

VIM Screenshot2

Cuestiones relacionadas