在linux下meld对比工具相对来说是很好用的代码对比工具,但是如果从 “应用程序>编程 ” 里启动meld来对比代码时,每次启动时选择对比的文件都是从根目录下去选,(即home目录下)这样每次从根目录下去选择要对比的文件很麻烦。要想不用从根目录下去先则要对比的文件可以将meld添加到右键的快捷方式里,在ubuntu里将meld添加到右键的方法如下:

1、创建一个shell脚本,这里把它起名为nautilus.sh

2、编写脚本

脚本名:compare.sh

#! /bin/bash
meld $NAUTILUS_SCRIPT_SELECTED_FILE_PATHS


(变量NAUTILUS_SCRIPT_SELECTED_FILE_PATHS是nautilus的一个变量该变量会在鼠标选择一个文件是记录下这个文件的

解决路径。还有几个变量介绍一下 NAUTILUS_SCRIPT_CURRENT_URI  #当前位置
NAUTILUS_SCRIPT_WINDOW_GEOMETRY  当前窗口的位置和大小
NAUTILUS_SCRIPT_SELECTED_URIS  所选文件的新行分割)

保存推出

3、将这个脚本加上可执行权限 chmod 755 nautiles.sh 然后放到~/.gnome/nautilus-scripts/目录下即可

使用方法:

按住Ctrl建鼠标选择两个要对比的文件,然后点击右键会有“脚本”两个字。点击后会出现你的脚本的名字和打开脚本文件夹两选项,点击那个脚本的名字运行脚本就可以了。

 

这是个非常简单的脚本,你可一自己添加功能,比如先检测你系统上有没有安装meld工具,如果没有可以自动安装,还可以去判断你选择的文件是不是个压缩包。如果是可以先将其解压按后在再去对比,出错是用zenity 命令提示出错的信息。这里不详细介绍了,只是提供一个思路而已。

 

上面的方法要同时选择两个文件,我们可以先选择一个文件,然后在选择另一个文件再进行比较,代码如下:

选择第一个文件的脚本:

脚本名:select_for_compare.sh


#!/bin/bash
quoted=$(echo "$NAUTILUS_SCRIPT_SELECTED_FILE_PATHS" | sed -e "s/\n/ /g")
 
echo "$quoted" > $HOME/.meld/nautilus

第二个进行比较的脚本:

脚本名:compare_to_select.sh

#!/bin/bash
arg1=$(cat $HOME/.meld/nautilus)
arg2=$(echo "$NAUTILUS_SCRIPT_SELECTED_FILE_PATHS" | sed -e "s/\n/ /g")
 
if [ "$(arg1)" -eq "0" ];then
zenity --info --text "No files Selected!"
exit 1
fi
meld $arg1 $arg2

注:首先要在主目录下即$HOME目录下创建一个.meld目录


将这两个脚本加上可执行权限,然后放到~/.gnome/nautilus-scripts/目录下即可



-------------------------------------------------------------------------------------------------------------

以上为转载  实际测试发现  两个脚本比较好用 在ubuntu 12.04下可以正常使用脚本启动meld比较文件



脚本1

#!/bin/bash
#
# This script opens a compare tool with selected files/directory by 
# script "set-as-*-left".
# so you should run "set-as-*-left" first
# Copyright (C) 2010  ReV Fycd
# Distributed under the terms of GNU GPL version 2 or later
#
# Install in ~/.gnome2/nautilus-scripts or ~/Nautilus/scripts
# You need to be running Nautilus 1.0.3+ to use scripts.
# You also need to install one compare tools to use scripts(such like meld)
# You can change the $compareTool to other compare tools(like "Kdiff3") that 
# you have already installed before.

compareTool="meld"
if [ -n "$NAUTILUS_SCRIPT_SELECTED_FILE_PATHS" ]; then
    set $NAUTILUS_SCRIPT_SELECTED_FILE_PATHS
    if [ $# -eq 1 ]; then
        file1="$1"
        echo "set-as-Meld-left Copyright (C) 2010  ReV Fycd"
        echo "${compareTool} ${file1} \\"> ~/.startcompare
    fi
fi

脚本2

#!/bin/bash
#
# This script opens a compare tool with selected files/directory by 
# script "set-as-*-left".
# so you should run "set-as-*-left" first
#
# Copyright (C) 2010  ReV Fycd
# Distributed under the terms of GNU GPL version 2 or later
#
# Install in ~/.gnome2/nautilus-scripts or ~/Nautilus/scripts
# You need to be running Nautilus 1.0.3+ to use scripts.
# You also need to install one compare tools to use scripts(such like meld)

if [ -n "$NAUTILUS_SCRIPT_SELECTED_FILE_PATHS" ]; then
    set $NAUTILUS_SCRIPT_SELECTED_FILE_PATHS
fi
if [ $# -eq 1 ]; then
    file2="$1"
    echo "Compare-to-left Copyright (C) 2010  ReV Fycd"
    echo $file2 >> ~/.startcompare
fi

chmod +x ~/.startcompare
exec ~/.startcompare

先选定文件1执行脚本1  再选定文件2执行脚本2

可以正常启动meld进行文件比较

Logo

更多推荐