Confronto tra i contenuti di due file in Sublime Text


397

Ho due repository clonati di due progetti open source molto simili, su cui ho lavorato in diversi casi in Sublime Text 2 per arrivare al risultato desiderato. È stato utilizzato il codice di entrambi questi progetti. Ho usato Git come controllo di versione per il mio progetto, ma non ho incluso i progetti originali. Quindi, vorrei poter confrontare rapidamente il contenuto di due file del progetto originale e confrontare le differenze tra loro e il mio progetto.

Speravo che Sublime Text 2 avesse una funzione "Confronta file", ma non riesco a trovare nulla a esso correlato nelle impostazioni o online. Anche un pacchetto ST2 di terze parti per eseguire questa operazione funzionerebbe bene. È possibile svolgere tale compito all'interno dell'editor di testo ST2?

Risposte:


705

Puoi effettivamente confrontare i file in modo nativo direttamente in Sublime Text.

  1. Passare alla cartella che li contiene attraverso Open Folder...o in un progetto
  2. Seleziona i due file (ovvero, tenendo premuto Ctrlsu Windows o su macOS) che desideri confrontare nella barra laterale
  3. Fare clic con il tasto destro e selezionare l' Diff files...opzione.


19
@Derek: usando select in grado di selezionare ma non in grado di trovare l'opzione del file diff con il tasto destro, ho solo l'opzione di chiusura con il tasto destro.
Mohamed Hussain,

66
@MohamedHussain Ci sono davvero due barre laterali diverse e devi essere quella giusta per farlo funzionare. Se vai su File> Apri cartella ..., seleziona la cartella in cui si trovano i tuoi file, quindi seleziona Visualizza> Barra laterale> Mostra barra laterale, otterrai quello che ti serve. Ottieni l'altro selezionando Visualizza> Barra laterale> Mostra file aperti, ma questo non ti consente di utilizzare l'opzione Diff Files ...
Jeramy,

25
Questo purtroppo non sembra funzionare più nella sublime build 3103 su Mac. Non appena faccio clic con il pulsante destro del mouse sul secondo file viene deselezionato,
merlin

8
Non funziona per me nella build 3144 su OSX. Posso selezionare due file nell'interfaccia del file, ma quando faccio Ctrl-clic ne viene selezionato solo uno e l'opzione diff non è presente.
James J,

4
Non funziona anche per me nel 3114 - Windows. Non c'è alcuna opzione diff quando faccio clic con il tasto destro del mouse sui file.
dangsonbk,

216

Confronta Side-By-Side sembra il più conveniente per me anche se non è il più popolare:

UPD: Devo aggiungere che questo plugin può bloccare ST mentre confronta i file di grandi dimensioni. Non è certamente la decisione migliore se si intende confrontare testi di grandi dimensioni.


11
questa è la soluzione IMO più semplice e conveniente. Funziona bene in ST3
mihai il

5
Funziona bene e può confrontare file da diverse posizioni che non sono riuscito a fare con il confronto nativo.
Leone

3
Questo funziona anche con il contenuto incollato in copia in nuove schede non salvate, che è utile in un pizzico.
mtone,

1
Vorrei averlo visto prima, mi avrebbe salvato una giornata improduttiva.
0_o

1
Confronta Side-By-Side mi ha appena aiutato.
noob,

61

Esistono numerosi plugin diff disponibili tramite Controllo pacchetti. Ho usato Sublimerge Pro , che ha funzionato abbastanza bene, ma è un prodotto commerciale (con un periodo di prova illimitato) e a codice chiuso, quindi non puoi modificarlo se vuoi cambiare qualcosa o semplicemente guardare i suoi interni. FileDiffs è piuttosto popolare, a giudicare dal numero di installazioni, quindi potresti provare quello.


2
Ora sto usando FileDiffs e funziona come un fascino. Grazie, risposta accettata.
LanceLafontaine,

1
Beh, non riesco a capire come usare FileDiffs. Puoi descrivere brevemente come posso confrontare due file con esso.
Jamil Ahmed,

4
@LanceLafontaine Normalmente non lo farei, ma ti dispiacerebbe cambiare la risposta accettata alla risposta di Derek 朕 會 功夫 di seguito? Nessuno di noi ha davvero bisogno dei punti, ma non sapevo che ci fosse un diff incorporato al momento. Ora lo uso sempre in Sublime. L'unica volta che non lo faccio è quando ho bisogno delle funzionalità estese di uno strumento esterno.
MattDMo

Quale di questi plugin è in grado di rilevare il movimento di interi blocchi di testo? E non solo dire che mancano alcune righe qui e appaiono lì, ma mostrano anche con le frecce come si sono mosse?
skan

Grazie a questa risposta, ho installato FileDiffs e aggiunto commad per utilizzare TortoiseMerge.exe per il confronto. È stato un enorme miglioramento per il mio uso quotidiano del confronto di codici sublimi. Grazie!
Lyubeto,

48

AGGIORNAMENTO
(Dati i voti positivi, ritengo che sia necessaria una spiegazione dettagliata passo-passo ...)

  1. Nella barra dei menu, fare clic su File->Open Folder...
  2. Seleziona una cartella (la cartella attuale non ha molta importanza, questo passaggio serve solo a rendere FOLDERSdisponibile la barra laterale)
  3. Se non è ancora stata visualizzata la barra laterale, farla apparire tramite View-> Side Bar->Show Side Bar
  4. Utilizzare questa FOLDERSbarra laterale con titolo per accedere al primo file che si desidera confrontare.
  5. Selezionalo (fai clic su di esso), tieni premuto ctrl e seleziona il secondo file.
  6. Dopo aver selezionato due file, fare clic con il tasto destro su uno dei due e selezionare Diff Files...

Ora dovrebbe esserci una nuova scheda che mostra il confronto.


Risposta breve originale: si
noti che:

I "file Diff" vengono visualizzati solo con la barra laterale "cartelle" (per aprire una cartella: File-> Apri cartella), non con la barra laterale "Apri file".


C'è un modo per selezionare quelle diverse linee? Uno appare in rosso e l'altro in verde
zeristor

1
Cosa intendi per selezionare? Evidenziarli e ad esempio copiarli? O estraendoli? Grazie per il chiarimento!
Langlauf.io,

Dal momento che le righe mancanti sono precedute da "-" ne ho selezionato uno e poi ho fatto corrispondere tutte, ho selezionato l'intera riga e copiato. Un modo costruito sarebbe solo più lanugine da dimenticare.
Zeristor,

5
Penso che valga la pena spiegare che entrambi i file non possono essere aperti. Se hai fatto doppio clic su entrambi in modo che siano entrambi aperti, non puoi evidenziare entrambi i file nella barra laterale utilizzando il pulsante ctrl. Devi assicurarti che uno di essi sia chiuso prima di poter selezionare entrambi i file. L'ho scoperto perché avevo già entrambi i file aperti e volevo usare i file diff ...
Battousai

1
@NaveenDA Ho adattato la mia risposta per poter rimuovere il link non funzionante. Grazie per il suggerimento!
langlauf.io,

25

AGGIORNAMENTO GENNAIO 2018 - specialmente per Sublime / Mac

(Questo è molto simile alla risposta di Marty F, ma affronta alcuni problemi delle risposte precedenti, combina diversi suggerimenti e discute la distinzione critica che inizialmente mi ha dato problemi.)

Sto usando Sublime Text 3 (build 3143) su Mac e ho cercato per circa 30 minuti di trovare questa funzione di confronto dei file. L'avevo usato prima su Sublime / Mac senza problemi, ma questa volta era più complicato. Ma alla fine l'ho capito.

  1. Il formato del file non deve essere UTF-8 . Ho confrontato con successo i file UTF-8, ISO-8559-1 e Windows-1252.

  2. Non è presente File> Apri cartelle su Sublime / Mac . Molte istruzioni sopra iniziano con "Seleziona file> Apri cartelle", ma non esiste su Sublime / Mac.

  3. Il confronto dei file funziona su base progetto . Se si desidera confrontare due file, questi devono essere salvati su disco e parte del progetto corrente.

  4. Modi per aprire un progetto

    • Se Sublime / Mac non è in esecuzione o se è in esecuzione ma non è aperta alcuna finestra, trascina una cartella sull'app Sublime.
    • Se Sublime / Mac è in esecuzione, selezionare "File> Apri", accedere alla cartella desiderata, non selezionare un file o una cartella e fare clic su "Apri".
  5. Aggiungi una cartella a un progetto . Se i file che si desidera confrontare non fanno parte della stessa gerarchia, aprire innanzitutto la cartella contenente uno dei file. Quindi, seleziona "Progetto> Aggiungi cartella al progetto", vai alla cartella desiderata e fai clic su "Apri". Ora vedrai due cartelle a livello di root nella barra laterale.

  6. La barra laterale deve essere visibile . Puoi "Visualizza> Barra laterale> Mostra barra laterale" oppure utilizzare la scorciatoia, Comando-K, Comando-B.

  7. I file devono essere chiusi (cioè salvati) per il confronto . Un singolo clic su un file nella barra laterale non apre il file, ma lo visualizza. Puoi sapere se un file è aperto se è elencato nella sezione "Apri file" nella parte superiore della barra laterale. Fare doppio clic su un file o apportare una modifica a un file cambierà automaticamente lo stato di un file in "Apri". In questo caso, assicurati di chiuderlo prima di provare a confrontare.

  8. Seleziona i file dalla gerarchia di cartelle . Shorcut Mac standard qui, ( singolo ) fai clic sul primo file, quindi fai clictenendo premuto iltasto Comando sul secondo file. Quando selezioni il primo file, vedrai il suo contenuto, ma non è aperto. Quindi, quando fai clic tenendo premuto il tasto Comando sul secondo file, ne vedrai il contenuto, ma di nuovo, nessuno dei due è aperto. Noterai solo una scheda nel riquadro di modifica.

  9. Fare clic tenendo premuto il tasto Ctrl non equivale a fare clic con il tasto destro . Questo è stato quello che mi ha preso. Uso il mio trackpad e ricorro spesso a Control-clic come clic con il tasto destro o secondario. Questo non funziona per me. Tuttavia, poiché ho configurato il mio trackpad in Preferenze di Sistema per utilizzare l'angolo in basso a destra del mio trackpad come clic con il tasto destro, ha funzionato, visualizzando il menu contestuale, con "Elimina", "Rivela nel Finder" e .... "File diff ..."

Ecco! Spero che questo aiuti qualcuno.


2
È possibile eseguire il confronto di una cartella anziché il confronto di file?
DCBoy

1
ciao! hai appena salvato gli utenti mac!
analyst045

10

AGGIORNAMENTO OTTOBRE 2017 Non ho mai saputo che questa funzione esistesse in Sublime Text, ma l'interfaccia sembra essere leggermente cambiata rispetto alla risposta precedente, almeno su OS X. Ecco i passaggi dettagliati che ho seguito:

  1. Nella barra dei menu fai clic su File -> Apri ...
  2. Passa alla CARTELLA che contiene i file da confrontare e con la CARTELLA selezionata, fai clic sul pulsante Apri, in questo modo appare la barra laterale CARTELLE
  3. Nella barra laterale FOLDERS, fai clic sul primo file da confrontare
  4. Tieni premuto Ctrl su Windows o ⌘ su OS X e fai clic sul secondo file
  5. Con entrambi i file selezionati, fare clic con il tasto destro su uno e selezionare Diff Files ...

Si apre una nuova scheda che mostra il confronto. Il primo file in rosso, il secondo in verde.


8

Visualizza - Layout e Visualizza - I gruppi eseguiranno nell'ultimo Sublime 3

per esempio:

Shift+ Alt+ 2-> crea 2 colonne

Ctrl+ 2-> sposta il file selezionato nella colonna 2

Questo è per il confronto fianco a fianco. Per la differenza effettiva, c'è la funzione diff già menzionata. Sfortunatamente, non riesco a trovare un modo per far scorrere le colonne contemporaneamente, il che sarebbe una bella caratteristica.


1
E per chiudere un gruppo puoi usare Ctrl+ K Ctrl+down
Alex Raj Kaliamoorthy

2

Nessuno parla di Linux, ma tutte le risposte di cui sopra funzioneranno. Basta usare Ctrl per selezionare più di un file. Se stai cercando di confrontare fianco a fianco, Meld è adorabile.


2

L'opzione Diff appare solo se i file si trovano in una cartella che fa parte di un progetto.

Quindi puoi effettivamente confrontare i file in modo nativo direttamente in Sublime Text.

Passa alla cartella che li contiene tramite Apri cartella ... o in un progetto Seleziona i due file (ovvero tenendo premuto Ctrl su Windows o ⌘ su macOS) che desideri confrontare nella barra laterale Fai clic con il pulsante destro del mouse e seleziona i file Diff ... opzione.


0

C'è anche un plug-in BeyondCompare. Apre i 2 file in una BeyondComparefinestra. Abbastanza comodo per aprire i file dalla finestra sublime.

Sarà necessaria l'installazione di BC3 presente nel sistema. Dopo aver installato il plugin , dovrai fornire il percorso per l'installazione.

Esempio:

{
    //Define a custom path to beyond compare
    "beyond_compare_path": "G:/Softwares/Beyond Compare 3/BCompare.exe"
}
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.