Comparar el contenido de dos archivos en Sublime Text

397

Tengo dos depósitos clonados de dos proyectos de código abierto muy similares, en los que he estado trabajando en diferentes instancias en Sublime Text 2 para llegar a mi resultado deseado. Se utilizó el código de ambos proyectos. He estado usando Git como control de versiones para mi proyecto, pero no he incluido los proyectos originales. Por lo tanto, me gustaría poder comparar rápidamente el contenido de dos archivos del proyecto original y comparar las diferencias entre ellos y mi proyecto.

Esperaba que Sublime Text 2 tuviera una función de "Comparar archivo", pero parece que no puedo encontrar nada relacionado con él en la configuración o en línea. Un paquete ST2 de terceros para realizar esta tarea también funcionaría bien. ¿Es posible realizar esa tarea dentro del editor de texto ST2?

LanceLafontaine
fuente

Respuestas:

705

En realidad, puede comparar archivos de forma nativa en Sublime Text.

  1. Navegue a la carpeta que los contiene a través Open Folder...o en un proyecto
  2. Seleccione los dos archivos (es decir, manteniendo presionado Ctrlen Windows o en macOS) que desea comparar en la barra lateral
  3. Haga clic derecho y seleccione la Diff files...opción.

Derek 朕 會 功夫
fuente
19
@Derek: usando select puede seleccionar pero no puede encontrar la opción de archivo diff con el botón derecho, solo tengo la opción de cerrar con el botón derecho.
Mohamed Hussain el
66
@MohamedHussain En realidad, hay dos barras laterales diferentes y debes estar en la correcta para que esto funcione. Si va a Archivo> Abrir carpeta ..., seleccione la carpeta en la que están sus archivos, luego seleccione Ver> Barra lateral> Mostrar barra lateral, obtendrá la que necesita. Obtiene el otro seleccionando Ver> Barra lateral> Mostrar archivos abiertos, pero este no le permitirá usar la opción Diff Files ...
Jeramy
25
Desafortunadamente, esto ya no parece funcionar en Sublime Build 3103 en Mac. Tan pronto como hago clic derecho, el segundo archivo se deselecciona,
merlin
8
No funciona para mí en Build 3144 en OSX. Puedo seleccionar dos archivos en la interfaz de archivo, pero cuando hago clic con la tecla Ctrl presionada, solo se selecciona uno y la opción diff no está allí.
James J
44
No funciona para mí también en 3114 - windows. No hay opción de diferencia cuando hago clic derecho en los archivos.
dangsonbk
216

Comparar Side-by-Side me parece el más conveniente para mí, aunque no es el más popular:

UPD: necesito agregar que este complemento puede congelar ST al comparar archivos grandes. Ciertamente, no es la mejor decisión si va a comparar textos grandes.

Dany
fuente
11
Esta es la solución más fácil y conveniente de la OMI. Funciona bien en ST3
mihai
55
Funciona bien y puede comparar archivos de diferentes ubicaciones que no he podido hacer con la comparación nativa.
Leo
3
Esto también funciona con el contenido copiado pegado en nuevas pestañas no guardadas, lo cual es útil en caso de necesidad.
mtone
1
Ojalá hubiera visto esto antes, me hubiera salvado un día improductivo.
0_o
1
Comparar lado a lado me ayudó.
noob
61

Hay varios complementos diff disponibles a través de Package Control. He usado Sublimerge Pro , que funcionó bastante bien, pero es un producto comercial (con un período de prueba ilimitado) y de código cerrado, por lo que no puede modificarlo si desea cambiar algo, o simplemente mirar sus componentes internos. FileDiffs es bastante popular, a juzgar por el número de instalaciones, por lo que es posible que desee probarlo.

MattDMo
fuente
2
Ahora estoy usando FileDiffs y funciona de maravilla. Gracias, respuesta aceptada.
LanceLafontaine
1
Bueno, no puedo entender cómo usar FileDiffs. ¿Puede describir brevemente cómo puedo comparar dos archivos con él?
Jamil Ahmed
44
@LanceLafontaine Normalmente no haría esto, pero ¿le importaría cambiar la respuesta aceptada a la respuesta de Derek below 會 功夫 a continuación? Ninguno de nosotros realmente necesita los puntos, pero no sabía que había una diferencia incorporada en ese momento. Ahora lo uso todo el tiempo cuando estoy en Sublime. El único momento en que no lo hago es cuando necesito las características extendidas de una herramienta externa.
MattDMo
¿Cuál de esos complementos puede detectar el movimiento de bloques enteros de texto? ¿Y no solo decir que faltan algunas líneas aquí y aparecen allí, sino que también muestran con flechas cómo se movieron?
skan
Gracias a esta respuesta, instalé FileDiffs y agregué commad para usar TortoiseMerge.exe para la comparación. Fue una gran mejora para mi uso diario de la comparación de códigos sublimes. ¡Gracias!
lyubeto
48

ACTUALIZACIÓN
(Dados los votos positivos, siento que es necesario una explicación completa paso a paso ...)

  1. En la barra de menú, haga clic en File->Open Folder...
  2. Seleccione una carpeta (la carpeta real realmente no importa, este paso es solo para hacer que la FOLDERSbarra lateral esté disponible)
  3. Si todavía no se muestra la barra lateral, haga que aparezca a través de View-> Side Bar->Show Side Bar
  4. Use esta FOLDERSbarra lateral con título para navegar hasta el primer archivo que desea comparar.
  5. Selecciónelo (haga clic en él), mantenga presionada la tecla Ctrl y seleccione el segundo archivo.
  6. Con dos archivos seleccionados, haga clic derecho en uno de los dos y seleccione Diff Files...

Debería haber una nueva pestaña que ahora muestra la comparación.


Respuesta corta original:
Tenga en cuenta que:

Los "archivos Diff" solo aparecen con la barra lateral "carpetas" (para abrir una carpeta: Archivo-> Abrir carpeta), no con la barra lateral "abrir archivos".

langlauf.io
fuente
¿Hay alguna manera de seleccionar esas diferentes líneas? Uno aparece en rojo y el otro en verde
zeristor
1
¿Qué quieres decir con select? ¿Resaltarlos y, por ejemplo, copiarlos? ¿O extraerlos? ¡Gracias por la aclaración!
langlauf.io
Como las líneas que faltan tienen el prefijo '-', seleccioné una y luego las emparejé, seleccioné la línea completa y la copié. Una construcción integrada sería más fácil de olvidar.
zeristor
55
Creo que vale la pena explicar que ambos archivos no pueden abrirse con fuerza. Si ha hecho doble clic en ambos para que ambos se abran, entonces no puede resaltar ambos archivos en la barra lateral con el botón Ctrl. Debe asegurarse de que uno de ellos esté cerrado antes de poder seleccionar ambos archivos. Descubrí esto porque ya tenía ambos archivos abiertos y quería usar archivos diff ...
Battousai
1
@NaveenDA Adapte mi respuesta para poder eliminar el enlace roto. ¡Gracias por la pista!
langlauf.io
25

ACTUALIZACIÓN ENERO 2018 - especialmente para Sublime / Mac

(Esto es muy similar a la respuesta de Marty F, pero aborda algunos problemas de respuestas anteriores, combina varias sugerencias diferentes y discute la distinción crítica que me dio problemas al principio).

Estoy usando Sublime Text 3 (compilación 3143) en Mac y he estado intentando durante unos 30 minutos encontrar esta función de comparación de archivos. Lo había usado antes en Sublime / Mac sin ningún problema, pero esta vez fue más complicado. Pero, finalmente lo descubrí.

  1. El formato de archivo no necesita ser UTF-8 . Comparé con éxito archivos que son UTF-8, ISO-8559-1 y Windows-1252.

  2. No hay Archivo> Carpetas abiertas en Sublime / Mac . Muchas de las instrucciones anteriores comienzan con "Seleccionar archivo> Abrir carpetas", pero eso no existe en Sublime / Mac.

  3. La comparación de archivos funciona por proyecto . Si desea comparar dos archivos, deben guardarse en el disco y ser parte del proyecto actual.

  4. Formas de abrir un proyecto

    • Si Sublime / Mac no se está ejecutando o si se está ejecutando pero no hay ventanas abiertas, arrastre una carpeta a la aplicación Sublime.
    • Si Sublime / Mac se está ejecutando, seleccione "Archivo> Abrir", navegue a la carpeta deseada, no seleccione un archivo o carpeta y haga clic en "Abrir".
  5. Agregar una carpeta a un proyecto . Si los archivos que desea comparar no forman parte de la misma jerarquía, primero abra la carpeta que contiene uno de los archivos. Luego, seleccione "Proyecto> Agregar carpeta al proyecto", navegue a la carpeta que desee y haga clic en "Abrir". Ahora verá dos carpetas de nivel raíz en su barra lateral.

  6. La barra lateral debe estar visible . Puede "Ver> Barra lateral> Mostrar barra lateral" o usar el atajo, Comando-K, Comando-B.

  7. Los archivos deben estar cerrados (es decir, guardados) para comparar . Un solo clic en un archivo en la barra lateral no abre el archivo, pero lo muestra. Puede saber si un archivo está abierto si aparece en la sección "Abrir archivos" en la parte superior de la barra lateral. Al hacer doble clic en un archivo o realizar una modificación en un archivo, el estado del archivo cambiará automáticamente a "Abrir". En este caso, asegúrese de cerrarlo antes de intentar comparar.

  8. Seleccione archivos de la jerarquía de carpetas . Shorcut estándar de Mac aquí, ( solo ) haga clic en el primer archivo, luego Comando-clic en el segundo archivo. Cuando selecciona el primer archivo, verá su contenido, pero no está abierto. Luego, cuando presiona Comando y hace clic en el segundo archivo, verá su contenido, pero nuevamente, ninguno está abierto. Notarás solo una pestaña en el panel de edición.

  9. Control-clic no es lo mismo que hacer clic con el botón derecho . Este fue el que me atrapó. Uso mi trackpad y a menudo recurro a Control-clic como clic derecho o secundario. Esto no funciona para mi. Sin embargo, desde que configuré mi trackpad en Preferencias del Sistema para usar la esquina inferior derecha de mi trackpad como clic derecho, funcionó, mostrando el menú contextual, con "Eliminar", "Revelar en Finder" y ... "Diferentes archivos ..."

Voilà! Espero que esto ayude a alguien.

Zonker.in.Geneva
fuente
2
¿Es posible hacer una comparación de carpetas en lugar de comparar archivos?
DCBoy
1
Dios! ¡acabas de salvar a los usuarios de mac!
analyst045
10

ACTUALIZACIÓN EN OCTUBRE DE 2017 Nunca supe que esta característica existía en Sublime Text, pero la interfaz parece haber cambiado ligeramente de la respuesta anterior, al menos en OS X. Estos son los pasos detallados que seguí:

  1. En la barra de menú, haga clic en Archivo -> Abrir ...
  2. Navegue a la CARPETA que contiene los archivos que se van a comparar y con la CARPETA seleccionada, haga clic en el botón Abrir, esto hace que aparezca la barra lateral CARPETAS
  3. En la barra lateral CARPETAS, haga clic en el primer archivo para comparar
  4. Mantenga presionada la tecla Ctrl en Windows o ⌘ en OS X y haga clic en el segundo archivo
  5. Con ambos archivos seleccionados, haga clic derecho en uno y seleccione Diff Files ...

Esto abre una nueva pestaña que muestra la comparación. El primer archivo en rojo, el segundo en verde.

Marty F
fuente
8

Ver - Diseño y Ver - Los grupos lo harán en el último Sublime 3

p.ej:

Shift+ Alt+ 2-> crea 2 columnas

Ctrl+ 2-> mover el archivo seleccionado a la columna 2

Esto es para una comparación lado a lado. Para la diferencia actual, existe la función diff otra que ya se mencionó. Desafortunadamente, no puedo encontrar una manera de hacer que las columnas se desplacen al mismo tiempo, lo que sería una buena característica.

Daniele Dellafiore
fuente
1
Y para cerrar un grupo puedes usar Ctrl+ K Ctrl+down
Alex Raj Kaliamoorthy
2

Nadie está hablando de Linux, pero todas las respuestas anteriores funcionarán. Simplemente use Ctrl para seleccionar más de un archivo. Si buscas comparar lado a lado, Meld es encantador.

Wannabe JavaGeek
fuente
2

La opción de diferencia solo aparece si los archivos están en una carpeta que forma parte de un proyecto.

De lo que realmente puede comparar archivos de forma nativa en Sublime Text.

Navegue a la carpeta que los contiene a través de Abrir carpeta ... o en un proyecto Seleccione los dos archivos (es decir, manteniendo presionada la tecla Ctrl en Windows o ⌘ en macOS) que desea comparar en la barra lateral Haga clic derecho y seleccione los archivos Diff ... opción.

Ricardo
fuente
0

También hay un complemento BeyondCompare. Abre los 2 archivos en una BeyondCompareventana. Bastante conveniente para abrir archivos desde la ventana sublime.

Necesitará la instalación BC3 presente en el sistema. Después de instalar el complemento , deberá proporcionar la ruta a la instalación.

Ejemplo:

{
    //Define a custom path to beyond compare
    "beyond_compare_path": "G:/Softwares/Beyond Compare 3/BCompare.exe"
}
Aditya Gupta
fuente