subtechグループ - 'hceT'.sub(/\Z/,'bus').reverse - screen emacs風bind

bind -c REGION 2 split
bind -c REGION 1 only
bind -c REGION 0 remove
bind -c REGION o focus
bind -c REGION ^ resize
bind x command -c REGION

キタコレ! THX!!!!!

最後は bind ^x のが個人的にはいいな。

by typester / at 2005-12-17T00:50:00 / screen / Comment

はてな GNU screen を使い始めて数ヶ月が経ち、ようやく慣れてきました。それで、screenrc による設定方法などを調べているのですが、「こういうときはこうす・・

encoding ネタを紹介してみた。

で、上記URLで紹介されていた下記バインド

bind 2 split
bind o focus
bind 1 only
bind 0 remove

一瞬便利! とかおもったけど、ちょ、これ 0, 1, 2 のウィンドウセレクトする時どすんだよw

bind ^1 select 1 とか別キー割り当てしてある?とかかしら。

by typester / at 2005-12-16T18:50:00 / screen / Comment

EmacsClient with screen

EmacsWiki に載ってたよ。

Using EmacsClient with screen

by typester / at 2005-12-11T21:16:00 / emacs · screen / Comment

emacsclient で emacs のウィンドウをアクティブに

↓の zshrc の case で処理わけているところに

emacsclient)
    screen -X eval "select 1"
    return
    ;;

とか追加してみる。僕は emacs は常に window 1 で開くので、select 1 でおk。

んでこのあと C-x # したら元のウィンドウにもどってくれたらかっけーんだけど、elisp で screen -X other とかよべばいいかなとか思ったけど、emacs 画面いってからファイル閉じる間にウィンドウ切り替えしたらうまく動かんし。どーやるんだろう。

alias ec='emacsclient -n' とかしててほとんどこっちしか使わないので戻んなくてもいいのだけど、svn(k) コミット時とかで便利そうだなぁ。

by typester / at 2005-12-11T14:31:00 / emacs · screen / Comment

zshで埋まって悲しいとき

ステータスライン - ari's Diary で紹介されているのをつかうと screen の window 名を自動的に最後に実行したコマンドに置き換えてくれる。すっばらしい。昨日ごろさんに教えてもらった。

by typester / at 2005-12-11T14:27:00 / screen / Comment

IRC でよばれたら表示

GNU screen hardstatus

なんで caution とかいわないで。なんとなく。

んで elisp は 33rpmさん に教えてもらって

(add-hook 'riece-keyword-notify-functions
      (lambda (keyword message) (call-process "touch" nil nil nil "/tmp/riece")))
(add-hook 'riece-after-switch-to-channel-functions
      (lambda (last) (call-process "rm" nil nil nil "/tmp/riece")))

こんな感じのを .riece/init においておく。これでIRCでキーワード流れると /tmp/riece ができる。 チャンネルかえると消える。

#!/usr/bin/perl

use strict;
use warnings;

$| = 1;

while (1) {
    if (-e '/tmp/riece') {
        print " Caution!! \n";
    }
    else {
        print "\n";
    }

    sleep 1;
}

こんなんを riece.pl として .screenrc には

hardstatus alwayslastline "[%02c] %0`%-w%{=b bw}%n %t%{-}%+w %= %?%{=b rw}%2`%{-} %?%1`"

backtick 0 0 0 ${HOME}/.screen/backtick.pl
backtick 1 0 0 ${HOME}/.screen/netstat.pl
backtick 2 0 0 ${HOME}/.screen/riece.pl

こんな感じで。%? でくくられてるところはそのなかのエスケープ文字(この場合 %2` )が展開されるときだけ中を表示するやつ。

んでこれ消すのにチャンネル変えなきゃいけないのはめんどいこともあるとおもうので

#/bin/sh
rm /tmp/riece

とかを delriece.sh とかにして screenrc に

bind r exec $HOME/.screen/delriece.sh

とかしといた。

by typester / at 2005-12-06T19:21:00 / screen / Comment

screenrc 読み込みなおし

:source $HOME/.screenrc

知らなかった。いちいち screen 再起してたよ。。

なんできねーかなとおもって :reload とか適当にいろいろためしてたらみっけた。(man 読みましょう)

by typester / at 2005-12-06T18:14:00 / screen / Comment

通信状態表示

GNU screen hardstatus #3

意味ねええええ。ので多分すぐあきる。

#!/usr/bin/perl

use strict;
use warnings;

$|=1;

{
    package StatQue;

    sub new { bless {}, shift }

    sub add {
        my $self = shift;
        push @{$self->{que}}, shift;

        shift @{$self->{que}} if @{$self->{que}} >= 11;
    }

    sub avg {
        my $self = shift;
        my $total;
        $total += $_ for @{$self->{que}};

        $total / @{$self->{que}};
    }
}

my $in_que  = StatQue->new;
my $out_que = StatQue->new;

my @stats = grep /.+/, split /:|\s/, qx{ cat /proc/net/dev | grep eth0 };
my ( $old_in, $old_out ) = ( $stats[1], $stats[9] );

while (1) {
    sleep 1;

    @stats = grep /.+/, split /:|\s/, qx{ cat /proc/net/dev | grep eth0 };
    my ( $new_in, $new_out ) = ( $stats[1], $stats[9] );

    $in_que->add( $new_in - $old_in );
    $out_que->add( $new_out - $old_out );

    printf("in: %.1fKB/s out: %.1fKB/s\n",
            $in_que->avg / 1024,
            $out_que->avg / 1024);

    $old_in  = $new_in;
    $old_out = $new_out;
}

こんなのを netstat.pl とかしておいて screenrc に

backtick 1 0 0 ${HOME}/.screen/netstat.pl

とする。hardstatus も

-hardstatus alwayslastline "[%02c] %`%-w%{=b bw}%n %t%{-}%+w"
+hardstatus alwayslastline "[%02c] %0`%-w%{=b bw}%n %t%{-}%+w %= %1`"

こんな感じで。

昨日の backtick.pl が ID0 で netstat.pl が ID1 ってことね。

by typester / at 2005-12-06T17:49:00 / screen / Comment

caption も always

これいい。

caption も hardstatus もどっちも always !

by typester / at 2005-12-05T22:02:00 / screen / Comment

問題

  1. IRC でキーワード(名前とかね)流れたら hardstatus に出したいけど elisp(riece) わからん。
    • → elisp わからんけどログ監視すればできそう
  2. カレントウィンドウの encoding を常に表示しときたい。
    • → まったくわからん

ボスケテ

by typester / at 2005-12-05T15:53:00 / screen / Comment

1 2 3

(Page 2 of 3)