Wie kann ich mit Nautilus zwei Dateien "unterscheiden"?

16

Ich habe Meld installiert und festgestellt, dass es ein großartiges Vergleichstool ist. Leider gibt es keine Integration mit Nautilus 3.2. Das heißt, ich kann nicht mit der rechten Maustaste auf Dateien klicken und eine Option auswählen, um sie in Meld zum Vergleich zu öffnen.

Ich habe in dem Toolkommentar gesehen, dass für das Tool das diff-ext- Paket installiert werden muss. Dieses Paket wurde aus dem Ubuntu-Universum entfernt, ich vermute, weil GTK 3.0. Selbst wenn ich das diff-ext- Paket manuell von source forge heruntergeladen habe , schlägt die Überprüfung beim Versuch, es zu konfigurieren, mit der folgenden Meldung fehl:

checking for DIFF_EXT... configure: error: Package requirements (libnautilus-extension >= 2.14.0 gconf-2.0 >= 2.14.0 gnome-vfs-module-2.0 >= 2.14) were not met:

No package 'libnautilus-extension' found
No package 'gconf-2.0' found
No package 'gnome-vfs-module-2.0' found

Ok, aus dieser Ausgabe gehe hervor, dass in der Tat GTK 2 erforderlich ist, um die Diff-Erweiterung für Nautilus zu installieren.

Nun ist meine Frage: Gibt es eine Möglichkeit, Meld in Nautilus zu integrieren? Oder gibt es ein anderes diff-basiertes Tool, das mit dem aktuellen Nautilus kompatibel ist? Also gtk3 basiert.

Ich benutze Ubuntu 11.10, wenn es bisher irgendwelche Zweifel gab.

bioShark
quelle

Antworten:

20

Es gibt eine nützliche Python-Erweiterung, die Meld in Nautilus integriert

Bildbeschreibung hier eingeben

Bildbeschreibung hier eingeben

wie installiert man

Beziehen Sie den Quellcode oder das Deb-Paket von der Website des Autors .

wget http://www.giuspen.com/software/nautilus-pyextensions_3.4.1-1_all.deb

sudo apt-get install python-nautilus
sudo dpkg -i nautilus-pyextensions_3.4.1-1_all.deb

Suchen Sie in Dash nach pyextension und führen Sie Nautilus PyExtension aus .

Aktivieren Sie die Meldungserweiterung (installieren Sie sie, wenn Sie dazu aufgefordert werden) und klicken Sie auf die Option Nautilus-Symbolleiste neu starten.

GConf-Fehler

Falls Sie beim Versuch, Nautilus PyExtension zu öffnen, einen GConf-bezogenen Fehler finden, installieren Sie "gobject-introspection" und "gir1.2-gconf-2.0":

sudo apt-get install gobject-introspection
sudo apt-get install gir1.2-gconf-2.0
fossfreedom
quelle
Danke, diese Arbeit ist großartig. Vielen Dank, dass Sie sich die Zeit genommen haben, um die Screenshots und die Schnellinstallationsbeschreibung zu erstellen. Immer gut, um Antworten von Ihnen zu bekommen.
BioShark
meldist super-super genial. Toller Integrationstipp.
Belacqua
11

Sie können auch das Nautilus-Compare-Paket installieren, das (ab Ubuntu 12.04) in den Standard-Ubuntu-Paket-Repositorys verfügbar ist. Führen Sie Folgendes von einem Terminal aus:

sudo apt-get install nautilus-compare

Dies bietet Nautilus-Menüoptionen für Zweiwege- und Dreiwegevergleiche. Standardmäßig wird Meld verwendet, es kann jedoch jede benutzerdefinierte Diff-Anwendung verwendet werden.

Ein wesentlicher Vorteil dieser Lösung besteht darin, dass man Dateien oder Ordner in verschiedenen Verzeichnissen vergleichen kann (z. B. /home/user/a/b/c/file.txtund /home/user/d/e/f/otherfile.txtin verschiedenen Nautilus-Fenstern öffnen und miteinander vergleichen kann).

Kennzeichen
quelle
3

Nautilus-Schrift

Eine einfachere und effizientere Alternative zur Installation einer dedizierten Erweiterung wäre die Verwendung eines Nautilus-Skripts wie das folgende:

#!/bin/bash
meld "$@"

Installationsanleitung: Wie kann ich ein Nautilus-Skript installieren?

Glutanimate
quelle
Dies ist mit Sicherheit die beste Lösung. Es vermeidet die Installation von weiteren Paketen und den damit verbundenen Overhead. Danke, @Glutanimate.
u2n
2

Verwenden von Nautilus zum Vergleichen von Dateien mit Text in der Zwischenablage

Diese Antwort wird hauptsächlich zum Vergleichen einer Datei mit Text in der Zwischenablage verwendet, der aus dem Internet kopiert wurde. Der Text in der Zwischenablage könnte jedoch aus einer anderen Datei auf Ihrem System kopiert worden sein, sodass dies eine in Frage kommende Antwort ist.

Dateiunterschiede werden mit dem systemeigenen diffBefehl von bash hervorgehoben und dann mit angezeigt gedit. Dies kann jedoch zu meldeinem anderen Paket von Drittanbietern geändert werden .

Diese Antwort verwendet die integrierte Funktion von Nautilus, um nach Auswahl einer Datei ein benutzerdefiniertes Skript auszuführen:

#!/bin/bash

# NAME: clipboard-diff
# PATH: $HOME/.local/share/nautilus/scripts
# DESC: Find differences bewteen selected file on disk and clipboard.
# CALL: Called from Nautilus file manager.
# DATE: March 18, 2017. Modified: March 31, 2017.

# NOTE: The clipboard would contain text highlighted on website and copied
#       with <ctrl>+<C>. Requires command `xclip` to be installed.

# Must have the xclip package. On Ubuntu 16.04, not installed by default
command -v xclip >/dev/null 2>&1 || { zenity --error --text "Install xclip using: 'sudo apt install xclip' to use this script.  Aborting."; exit 99; }

# strip new line char passed by Nautilus
FILENAME=$(echo $NAUTILUS_SCRIPT_SELECTED_FILE_PATHS | sed -e 's/\r//g')

# Multiple files can't be selected.
LINE_COUNT=$(wc -l <<< "$NAUTILUS_SCRIPT_SELECTED_FILE_PATHS")
LINE_COUNT=$((LINE_COUNT-1))

if [[ $LINE_COUNT > 1 ]] ; then
    zenity --error --text "Ony one file can be selected at a time! "
    exit 1
fi

# Object type must be "file..." (ie no directories, etc.)
if [ -d "${FILENAME}" ] ; then
    zenity --error --text "$FILENAME is a directory!";
    exit 1
else
    if [ -f "${FILENAME}" ]; then
        : # Bash noop
    else
        zenity --error --text "${FILENAME} is not a file!";
        exit 2
    fi
fi

# Get clipboard contents into working file
workfile="/tmp/clipboard-work-"$(date +%s)
xclip -o > $workfile

# Create temporary file name so two or more open instances won't clash
differences="/tmp/clipboard-diff-"$(date +%s)

# Compare file differences
# -q brief -B ignore blank lines, -u only differences
diff --unified=2 -w -b -B -I --suppress-blank-empty \
        --suppress-common-lines --ignore-all-space \
        ${FILENAME} $workfile > $differences

# If file doesn't exist, errors in diff parameters
# If file size =0 there were no differences
if [[ -f $differences ]] ; then
    if [[ -s $differences ]] ; then
        # File not empty.
        gedit $differences
    else    
        zenity --info --text "$workfile matches $differences"
    fi
else
    zenity --error --text "cliboard-diff - error in diff parameters."
fi

# clean up /tmp directory
rm $workfile
rm $differences

exit 0

ANMERKUNG: Ich habe dieses Nautilus-Skript vor ein paar Wochen entwickelt und wollte es als neues Q & A veröffentlichen, war aber unter Zeitdruck und war unsicher, ob sich wirklich jemand dafür interessieren würde.

Beispielausgabe

Zwischenablage-Diff 1

In diesem Beispiel wird das aktuelle Skript, das vor dem 31. März 2017 in AU veröffentlicht wurde, mit der am 31. März 2017 überarbeiteten Version verglichen. Beachten Sie, wie neue Informationen und Fehlermeldungen eingerichtet wurden.

Der diffBefehl ist sehr leistungsfähig und verfügt als solcher über eine Vielzahl von Steuerungsparametern. Geben Sie man diffdas Terminal für die Handbuchseiten oder info difffür noch mehr Details zur Befehlsverwendung ein.

WinEunuuchs2Unix
quelle