|
#!/usr/bin/bash
# このスクリプトの置き場所について。
# 私の場合、~/bin にパスを通しておいて、
# ~/bin/hidemaru という名前で保存しています。
# 環境依存変数。
# hidemaru.exe のあるディレクトリ
hm_hidemarudir='/cygdrive/c/progra~1/hidemaru'
# -e で使う。秀丸マクロディレクトリ
hm_macrodir='/cygdrive/c/progra~1/hidemaru/macro'
# -e で使う。一時マクロファイル名
hm_macro='tmp.mac'
# デフォルトのウインドウの大きさ
hm_showwindow='/(0,0,200,200) '
if [ "$1" == "--help" ]; then
ver='$Id: hidemaru,v 1.14 2003-02-24 11:14:32+09 ta Exp ta $'
cat <<EOD >&2
SYNOPSIS: ${0##*/} [options] [files]
新規ファイルは引数で指定できません。
OPTIONS:
-Kkcode 漢字コードの指定。kcode で有効な文字は以下。
s[jis], e[uc], j[is], u[nicode], u[tf7],
u[tf8], u[nicode]b, cs (簡体字中国語), ct (繁体字中国語)
k[orea] (韓国語), a (欧文 iso-8859-1)
-kkcode, -fkcode -K と同じ。
-b 閲覧モードで開く。
-c[extension] ファイルタイプ別の設定を適応する。
例。-c.txt, -c.cpp, -c.java
-e 'command' 一行スクリプトの指定。複数の -e が使える。
明示的に終了させるには、exit などを使い、
endmacro 等は使ってはならない。
-h ウインドウを隠して開く。
-jline[,column] カーソルを指定の行の指定のカラムへ位置づける。
-p 印刷。
-r 書き込み禁止で開く。
-xmacrofile 実行マクロ指定。マクロは、"exit", "saveexitall",
"quit" などで終了する必要がある。
-w 通常の大きさのウインドウで開く。
$ver
EOD
exit 0
elif [ "$1" == "--showmacro" ]; then
cat $hm_macrodir/$hm_macro
exit 0
fi
execmacro=0
options=
while getopts K:k:c:g:j:k:f:x:e:brphw opt; do
case $opt in
K | k | f )
case $OPTARG in
s* ) options="$options/fs " ;;
e* ) options="$options/fe " ;;
j* ) options="$options/fj " ;;
u*b) options="$options/fub " ;;
u*7) options="$options/fu7 " ;;
u*8) options="$options/fu8 " ;;
u* ) options="$options/fu " ;;
cs ) options="$options/fcs " ;;
ct ) options="$options/fct " ;;
ck*) options="$options/fk " ;;
ca ) options="$options/fa " ;;
esac
;;
[cgj] ) options="$options/$opt$OPTARG " ;;
x )
if [ $execmacro -eq 0 ]; then
if [ "${OPTARG#*/}" != "$OPTARG" ]; then
options="$options/$opt${OPTARG//\//\\} "
else
options="$options/$opt$OPTARG "
fi
export hm_currentmacrobasename="${OPTARG##*/}"
execmacro=2
fi
;;
e )
if [ $execmacro -eq 0 ]; then
echo '' > $hm_macrodir/$hm_macro
export hm_currentmacrobasename=$hm_macro
execmacro=1
fi
if [ $execmacro -eq 1 ]; then
echo "$OPTARG;" >> $hm_macrodir/$hm_macro
fi
;;
h ) hm_showwindow='/h ' ;;
w ) hm_showwindow='' ;;
* ) options="$options/$opt " ;;
esac
done
if [ $OPTIND -gt 1 ]; then
shift $(( OPTIND - 1 ))
fi
options="$options$hm_showwindow "
if [ $execmacro -eq 1 ]; then
# echo 'saveexitall;' >> $hm_macrodir/$hm_macro
# echo 'if(updated) save; exit;' >> $hm_macrodir/$hm_macro
echo 'if(updated==1 && basename!="") save; quit;' >> $hm_macrodir/$h
m_macro
options="/x $hm_macro $options"
fi
if [ $# -gt 0 ]; then
dir="$(cygpath -w $(pwd))"
for f in "$@"; do
if [ -f "$f" ]; then
if [ "${f#*/}" != "$f" ]; then
f="$(cygpath -w $f)"
echo $hm_hidemarudir/hidemaru.exe $options $f
$hm_hidemarudir/hidemaru.exe $options $f
else
echo $hm_hidemarudir/hidemaru.exe $options $dir\\$f
$hm_hidemarudir/hidemaru.exe $options $dir\\$f
fi
fi
done
elif [ -n "$options" ]; then
$hm_hidemarudir/hidemaru.exe $options
else
# 常駐秀丸確認用
$hm_hidemarudir/hidemaru.exe
fi
export -n hm_currentmacrobasename
exit 0
|
|