slowjet

is a part of a carburetor

screen備忘録

とりあえずscreenって何っていうのは以下参照で

OS Xにはビルトインされてるので、Terminalで

$ screen

するとすぐ使える。

Screenを使うと実質Terminalの画面を縦に分割できてとても便利。

コマンドこれだけあればとりあえず大丈夫そう

以下<C+t>はデフォルトは<C+a>になってるので、.screenrcで変えておく(好みで)

<C+t> c 新しいウィンドウをシェルをつくる
<C+t> n(p) ウィンドウ間を行き来(n: 次, p: 前)
<C+t> | ウィンドウを縦に分割
<C+t> tab 分割したウィンドウ間を移動
<C+t> x 分割したウィンドウで、現在選択してるウィンドウを破棄
<C+t> d screenをデタッチ

<C+t> |で分割した後は<C+t> cで新しくウィンドウを作ると使えるようになる。

あとzshを使ってる場合は.zshrcに以下貼っておくと、zshの一番下にscreenのウィンドウ一覧と履歴が表示できて幸せになれる

※ 2度ほど出てくる:t\\"のところは:t^[\\"に置き換える。

# screen auto startup
# [username]のところは置き換えて使う if [ $TERM != "screen" -a "`screen -ls | grep Attache`" = "" ]; then screen -US [username] -xRR fi #screenのステータスラインに最後に実行したコマンドを表示 if [ "$TERM" = "screen" ]; then #chpwd () { echo -n "_`dirs`\\" } preexec() { # see [zsh-workers:13180] # http://www.zsh.org/mla/workers/2000/msg03993.html emulate -L zsh local -a cmd; cmd=(${(z)2}) case $cmd[1] in fg) if *1; then cmd=(builtin jobs -l %+) else cmd=(builtin jobs -l $cmd[2]) fi ;; %*) cmd=(builtin jobs -l $cmd[1]) ;; cd) if *2; then cmd[1]=$cmd[2] fi ;& *) echo -n "k$cmd[1]:t\\" return ;; esac local -A jt; jt=(${(kv)jobtexts}) $cmd >>(read num rest cmd=(${(z)${(e):-\$jt$num}}) echo -n "k$cmd[1]:t\\") 2>/dev/null } chpwd () {} fi