1. 程式人生 > >ubuntu 右鍵新增meld快捷方式

ubuntu 右鍵新增meld快捷方式

在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進行檔案比較