トップ 差分 一覧 ソース 検索 ヘルプ PDF RSS ログイン

bash+screen+cdinst2.sh+vim で screenタイトル を便利につかってみる

[カテゴリ:Linux]

概要

bash+screen+cdinst2.sh+vim 環境で screen画面上以下を表示する。
・bashアクティブ中は、ディレクトリ表示
vimアクティブ中は、編集中ファイル名表示

参考

以下サイトを参照しました。多謝。

subtech - Pink Blossom Diary ( ̄―+ ̄) - cd で移動したディレクトリを screen のタイトルに表示:
http://subtech.g.hatena.ne.jp/secondlife/20060927/1159347408

CMS researcher - Vimを使い終わったらGNU Screenのステータスラインのタイトルを「** free **」に:
http://d.hatena.ne.jp/ysano2005/20061118/1163829796

cdhist2.sh
http://www.ep.sci.hokudai.ac.jp/~michi/pc/sh/script-01.html

各種設定&一部コード変更

~/.bashrc

ログインでcdhist2.shを有効に。

goun@DebianEtch2:~$ vi .bashrc
:
 [[ -r "$HOME/bin/cdhist2.sh" ]] && . "$HOME/bin/cdhist2.sh"

~/.vimrc

vim起動で、screenに編集中ファイル名を表示 &
vim終了で、screenにディレクトリ名を表示

:
if &term =~ "screen"
  autocmd BufEnter * if bufname("") !~ "^\[A-Za-z0-9\]*://" | silent!  exe '!echo -n "^[kv:%^[\\    "' | endif
  autocmd VimLeave * silent!  exe '!echo -n "^[k[`basename $PWD`]^[\\"'
endif

^[ は ctrl+v+[ キーを順番に押して入力(途中で放さない)

~/bin/cdhist2.sh のコード変更

ダウンロード&設定

goun@DebianEtch2:~$ wget http://www.ep.sci.hokudai.ac.jp/~michi/pc/sh/src/cdhist2/2.8/cdhist2.sh_2.8.0.gz
--04:26:19--  http://www.ep.sci.hokudai.ac.jp/~michi/pc/sh/src/cdhist2/2.8/cdhist2.sh_2.8.0.gz
           => `cdhist2.sh_2.8.0.gz'
www.ep.sci.hokudai.ac.jp をDNSに問いあわせています... 133.50.160.51
www.ep.sci.hokudai.ac.jp|133.50.160.51|:80 に接続しています... 接続しました。
HTTP による接続要求を送信しました、応答を待っています... 200 OK
長さ: 7,365 (7.2K) [text/plain]

100%[====================================================================>] 7,365         --.--K/s

04:26:19 (251.69 KB/s) - `cdhist2.sh_2.8.0.gz' を保存しました [7365/7365]

goun@DebianEtch2:~$
goun@DebianEtch2:~$ gunzip cdhist2.sh_2.8.0.gz
goun@DebianEtch2:~$ nkf -Jw --overwrite cdhist2.sh_2.8.0

goun@DebianEtch2:~$ mv cdhist2.sh_2.8.0 ./bin/cdhist2.sh

~/bin/cdhist2.sh をちょっと改造

cdしたとき(builtin cd の実行直後)に、現在のディレクトリをscreenに表示するコードを追加

~/bin/cdhist2.sh

:
254     ## [-c] の実行
255       -c)
256       ## ccl() を call
257         cdhist2_ccl; return
258       ;;
259
260     ## 通常の cd を実行
261       *)
262         builtin cd $DefOpt "$@"
263 ## add
264   if [ "$TERM" = "screen" ]; then
265     echo -n "^[k[`basename $PWD`]^[\\"
266   fi
267 ## /add
268       ;;
269     esac || return
:
670       ## 確認後, rcl() <Clean> を call
671       cdhist2_pem -q 'n' "$FUNCNAME" 'Remove these directories' || return
672       cdhist2_rcl -c "$Dir" || return
673       echo "$FUNCNAME: done."; return 99
674     }
675
676     ## 通常の cd を実行
677     builtin cd $DefOpt "$Dir"; pwd
678 ## add
679   if [ "$TERM" = "screen" ]; then
680     echo -n "^[k[`basename $PWD`]^[\\"
681   fi
682 ## /add
683   }

最終更新時間:2007年02月28日 22時52分41秒