J'ai installé Meld et j'ai découvert que c'était un excellent outil de comparaison. Malheureusement, il n'y a pas d'intégration avec Nautilus 3.2. Cela signifie que je ne peux pas cliquer avec le bouton droit sur les fichiers et sélectionner une option pour les ouvrir dans Meld à des fins de comparaison.
J'ai vu dans le commentaire sur les outils que l'outil doit installer le package diff-ext. Ce paquet a été supprimé de l'univers Ubuntu, je suppose, car gtk 3.0. Même si j'ai téléchargé manuellement à partir de la source forger le paquet diff-ext, lorsque j'essaie de le configurer, la vérification échoue avec le message suivant:
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, donc à partir de cette sortie, je suppose qu’en effet, GTK 2 est sur le point d’installer l’extension diff de Nautilus.
Ma question est la suivante: existe-t-il une possibilité d’intégrer Meld dans Nautilus? Ou bien, existe-t-il un autre outil basé sur les différences qui s’intègre au Nautilus actuel? Donc, basé sur gtk3.
J'utilise Ubuntu 11.10 s'il y avait un doute jusqu'à présent.
Il y a une extension utile python qui incorpore Meld dans Nautilus
comment installer
Obtenez le paquet source ou le paquet deb à partir du site Web des auteurs .
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
Recherchez pyextension dans Dash et exécutez Nautilus PyExtension .
Activez l’extension meld (installez-la si nécessaire) et cliquez sur l’option de redémarrage de la barre d’outils Nautilus.
erreur GConf
Si vous rencontrez une erreur liée à GConf lorsque vous essayez d'ouvrir Nautilus PyExtension, installez "gobject-introspection" et "gir1.2-gconf-2.0":
Sudo apt-get install gobject-introspection
Sudo apt-get install gir1.2-gconf-2.0
Vous pouvez également installer le paquet nautilus-compare, disponible (à partir de Ubuntu 12.04) à partir des référentiels de paquets Ubuntu standard - exécutez ce qui suit à partir d'un terminal:
Sudo apt-get install nautilus-compare
Ceci fournit des options de menu Nautile pour des comparaisons à 2 et 3 voies. La fusion est utilisée par défaut, mais toute application de diff définie par l'utilisateur peut être utilisée.
Un avantage important de cette solution est que l’on peut comparer des fichiers ou des dossiers situés dans différents répertoires (par exemple, /home/user/a/b/c/file.txt
et /home/user/d/e/f/otherfile.txt
peuvent être ouverts dans différentes fenêtres de Nautilus et comparés les uns aux autres).
Script Nautilus
Une alternative plus simple et plus efficace à l'installation d'une extension dédiée serait d'utiliser un script Nautilus comme celui-ci:
#!/bin/bash
meld "$@"
Instructions d'installation: Comment puis-je installer un script Nautilus?
Cette réponse est principalement utilisée pour comparer un fichier au texte du presse-papiers copié à partir d'Internet. Le texte du presse-papier aurait pu être copié à partir d'un autre fichier de votre système, ce qui en ferait une réponse éligible.
Les différences de fichier sont mises en évidence à l'aide de la commande native diff
de bash, puis affichées à l'aide de gedit
. Cela peut être modifié pour meld
ou tout autre paquet tiers.
Cette réponse utilise la fonction intégrée de Nautilus pour exécuter un script personnalisé après la sélection d'un fichier:
#!/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
REMARQUE: J'ai développé ce script Nautilus il y a quelques semaines et je voulais le poster en tant que nouveau Q & R, mais j'ai été pressé par le temps et je ne savais pas si n'importe qui serait vraiment intéressé à cela.
Dans cet exemple, nous comparons le script réel posté ici dans AU avant le 31 mars 2017 à la version révisée le 31 mars 2017. Notez comment les nouvelles informations et les messages d'erreur ont été configurés.
La commande diff
est très puissante et possède une myriade de paramètres de contrôle. Tapez man diff
dans le terminal pour les pages de manuel ou info diff
pour plus de détails sur l'utilisation des commandes.