隨筆-11  評論-10  文章-8  trackbacks-0
          用慣了git覺得沒有顏色的diff實在是無法忍受,還好emacs可以配置diff-mode的顏色,但svn diff卻沒有發現有參數可以指定highlight diff的,于是自己寫了一個。是一個bash腳本,用到了sed,linux下肯定沒有問題;windows下需要裝MinGW的bash,sed還有msys


          #!/bin/sh

          case 
          "$TERM" in
          msys)
          CONTEXT_COLOR
          =""
          ADD_COLOR
          =""
          DELETE_COLOR
          =""
          LOCATION_COLOR
          =""
          INDEX_COLOR
          =""
          NORM_COLOR
          =""
          ;;
          *)
          CONTEXT_COLOR
          =`tput setaf 7`
          ADD_COLOR
          =`tput setaf 2`
          DELETE_COLOR
          =`tput setaf 1`
          LOCATION_COLOR
          =`tput setaf 6`
          INDEX_COLOR
          =`tput setaf 5`
          NORM_COLOR
          =`tput sgr0`
          ;;
          esac

          svn diff $* |
          sed -e 
          "s/^+.*/${ADD_COLOR}&${NORM_COLOR}/g" -e "s/^-.*/${DELETE_COLOR}&${NORM_COLOR}/g" \
              -e 
          "s/^@@.*/${LOCATION_COLOR}&${NORM_COLOR}/g" -e "s/^[iI]ndex.*/${INDEX_COLOR}&${NORM_COLOR}/g" \
              -e 
          "s/.*/${CONTEXT_COLOR}&${NORM_COLOR}/g" |
          ${PAGER:-less -QRS}

          由于windows上沒有tput方法所以只能直接寫操作字符,上面方塊的字符可以通過下面命令將結果輸出到文件得到
          echo -e "\033[31mtest" > out

          tput setbf [0-7] 可以用來設置背景顏色。這有有顏色的代碼:
          http://www.frexx.de/xterm-256-notes/

          貼上來的代碼中有特殊字符,貌似被解析成奇怪的東西了,可以點擊這里下載


          posted on 2008-09-27 00:29 JBahamut 閱讀(3474) 評論(0)  編輯  收藏

          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          主站蜘蛛池模板: 河池市| 萍乡市| 丘北县| 临西县| 聂荣县| 莆田市| 甘肃省| 汝州市| 东光县| 栖霞市| 祁东县| 灵山县| 普宁市| 攀枝花市| 长治县| 泰来县| 峨山| 文山县| 重庆市| 宣威市| 许昌县| 香河县| 大埔县| 敦化市| 涞源县| 阿坝县| 鄢陵县| 古浪县| 九江县| 谢通门县| 衢州市| 万山特区| 桐城市| 从江县| 阜新市| 建德市| 淄博市| 上饶县| 泸溪县| 衡阳市| 中山市|