デバッグ出力ウィンドウの位置を記憶させよう
「vim + screen + gdbでデバッグしよう」シリーズのつづき
http://d.hatena.ne.jp/parasporospa/20060827
終了時にデバッグ出力ウィンドウの位置とサイズを記憶させたい。
そこでデバッグ開始するスクリプト gdbvim を次のように修正した。
#!/bin/bash debugout_geomfile="$HOME/.DebugOutput-geometry" # kterm (ログウィンドウ) を開き、疑似端末デバイス名をファイルに保存 if [ -f $debugout_geomfile ]; then debugout_geom=`cat "$debugout_geomfile"` else debugout_geom='-geometry 70x13+0+500' fi kterm $debugout_geom -T "Debug Output" -e sh -c 'tty > debugout.tty;cat' & ktermpid=$! # debugout.tty ができるまで待つ while [ ! -f debugout.tty ]; do sleep 1 done debugout=`cat debugout.tty` rm -f debugout.tty # gdb を起動。そして runcmd を実行させる。 echo "run -f -g 2> $debugout " >| runcmd # SIGINT が来たら gdb に渡す trap "pkill -2 gdb" 2 gdb -x runcmd --args ./vim # 後始末 xwininfo -name "Debug Output" | grep -e '-geometry' >| "$debugout_geomfile" kill $ktermpid 2> /dev/null rm -f runcmd
終了直前に xwininfo を使って -geometry をファイルに保存する。
うちのウィンドウマネージャ xfwm4 はウィンドウ初期位置に関するオプションがないらしい。