在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/目录下即可
快去试试把!!!
ubuntu14.04版本 要将脚本文件放到 ~/.local/share/nautilus/scripts 目录下,放到~/.gnome/nautilus-scripts/不起作用。