GNU screen その3
■ このスレッドは過去ログ倉庫に格納されています
0001名無しさん@お腹いっぱい。
2005/03/21(月) 07:24:04前スレ
screenってどうよ http://pc.2ch.net/test/read.cgi/unix/1001966406/
GNU screen その2 http://pc5.2ch.net/test/read.cgi/unix/1048030339/
GNU screen その3 http://pc5.2ch.net/test/read.cgi/unix/1087436430/
0187名無しさん@お腹いっぱい。
2005/06/24(金) 13:29:320188名無しさん@お腹いっぱい。
2005/06/24(金) 13:41:18screenのbindkey使えば?
0189184
2005/06/24(金) 17:47:51bindkeyで一文字だけで割り当てられるとは知りませんでした。
ありがとうございます。
w3m デフォルトキーマップのwに辞書検索を割り当てて
.screenrc
bindkey w exec $HOME/bin/split.sh --search
w押下->辞書検索->次の単語に移動という動作にしたいのですが
うまくいきません。
bindkey に w を割り当てていて入力できないので
w3m keymapに
keymap x NEXT_WORD
としてxで次の単語移動の動作をつけて
split.shに
辞書検索スクリプト実行後
screen -X eval 'at work stuff x'
としたのですがw3mのカーソル位置にxが書き込まれて期待した
動作が得られませんでした。
そこで考えてscreenの他のウインドウ経由で実行するようにしたらたまに成功するようになりましたが
確実に成功させることはできませんでした。
screen -X eval 'at tmp stuff "screen -X eval \"at work msgwait 0\" \"at work stuff x\"^M"'
なぜかスクリプト経由のscreen -X eval 'at work stuff x'だとうまくいかず
他のウインドウから直接screen -X eval 'at work stuff x'した場合はすべてうまくいきました。
なにかよい解決方法はあるでしょうか?
0190184
2005/06/24(金) 18:10:57修正
screen上の他のウインドウからスクリプトを直に実行した場合も
100%成功する
screen上でbindkey経由で起動されるスクリプトで実行がうまくいかない。
0191名無しさん@お腹いっぱい。
2005/06/24(金) 18:17:10> なにかよい解決方法はあるでしょうか?
emacs使ってelisp書くか、自分でshellを書け
その方がスマートかつ短時間で解決できそう
0192名無しさん@お腹いっぱい。
2005/06/24(金) 18:22:41>bindkey w exec $HOME/bin/split.sh --search
bindkeyにwとか割当てると悲惨になるので、^[wとか割当てた方がよい。
>w押下->辞書検索->次の単語に移動という動作にしたいのですが
>うまくいきません。
どのようにうまくいかない?
>としたのですがw3mのカーソル位置にxが書き込まれて期待した
>動作が得られませんでした。
>
>そこで考えてscreenの他のウインドウ経由で実行するようにしたらたまに成功するようになりましたが
これは俺もはまった。execのfdpatが絡んできて結構複雑。
exec ! $HOME/bin/split.sh --search
にすればok
0193名無しさん@お腹いっぱい。
2005/06/25(土) 12:17:10emacsいいなーとはおもいますが
キーバインド覚えるのがたいへんで
vim使いつづけてますよ。
>>192
>bindkeyにwとか割当てると悲惨になるので、^[wとか割当てた方がよい。
2回キー入力はめんどうなのでにしました。
>どのようにうまくいかない?
>これは俺もはまった。execのfdpatが絡んできて結構複雑。
>exec ! $HOME/bin/split.sh --search
>にすればok
Hello World
H の部分で検索した場合
xello World
上記のようにw3mの画面にstuffで入力したキーが書き込まれる
時がありました。
exec !にしたらうまくいきました。
ありがとうございます。
ttp://www.dekaino.net/screen/screen-thread2.txt
[302] [303] [306] [307] [308] [309] [310]
に似たようなことが書いてあったので他の人のために貼
0194192
2005/06/25(土) 13:30:52>>bindkeyにwとか割当てると悲惨になるので、^[wとか割当てた方がよい。
>2回キー入力はめんどうなのでにしました。
^[wはalt-wだぞ
>ttp://www.dekaino.net/screen/screen-thread2.txt
>[302] [303] [306] [307] [308] [309] [310]
>に似たようなことが書いてあったので他の人のために貼
これ、俺です。
0195名無しさん@お腹いっぱい。
2005/06/25(土) 13:36:54便利なスクリプトができたら是非公開してくれ。
0197177
2005/06/28(火) 02:36:12パスワードがhogeとして例を書いてくれないですかね?
0198名無しさん@お腹いっぱい。
2005/06/28(火) 07:27:140199177
2005/06/28(火) 09:07:280201177
2005/06/28(火) 09:45:15考えて下さい
0202名無しさん@お腹いっぱい。
2005/06/28(火) 09:50:100203177
2005/06/28(火) 10:03:28.screenrcに書いたらいいことをそのまま教えて下さい
0204名無しさん@お腹いっぱい。
2005/06/28(火) 10:27:42スレ違い.ここまで読んで .screenrc で解決しようとする時点で君には無理.
0205名無しさん@お腹いっぱい。
2005/06/28(火) 10:44:500206177
2005/06/28(火) 10:52:19ですので、あなたたちが考えて下さい
0207名無しさん@お腹いっぱい。
2005/06/28(火) 12:15:570208177
2005/06/28(火) 13:48:46自分でわかれば聞きません
0209名無しさん@お腹いっぱい。
2005/06/29(水) 06:19:080210177
2005/06/29(水) 11:48:23では、だまります
0211名無しさん@お腹いっぱい。
2005/06/29(水) 12:39:470213名無しさん@お腹いっぱい。
2005/06/29(水) 13:21:450214名無しさん@お腹いっぱい。
2005/06/29(水) 13:39:450215名無しさん@お腹いっぱい。
2005/06/29(水) 23:47:45さ、オナニーしてとっとと寝ろ。
0216名無しさん@お腹いっぱい。
2005/07/02(土) 18:31:54て(MAXPATHLEN * 3 以上)、FIFOに対してアトミックに読み書きで
きる大きさ(PIPE_BUF)を越えているので、連続してscreen -Xを使
うと、
Invalid message (magic 0x00000000).
と出て動かないことがあった。
os.h で MAXPATHLEN を 1024 で定義しなおして、コンパイルした
らこの現象は起きなくなった。
0217名無しさん@お腹いっぱい。
2005/07/02(土) 20:47:04いやそんなMLがあるかどうか知らんけど。
0218名無しさん@お腹いっぱい。
2005/07/02(土) 21:24:28でもscreen様がわざわざlinuxごときにあわせてやる必要もないだろ
0219名無しさん@お腹いっぱい。
2005/07/03(日) 02:26:410220名無しさん@お腹いっぱい。
2005/07/03(日) 02:28:060221Linux
2005/07/03(日) 06:10:510222名無しさん@お腹いっぱい。
2005/07/04(月) 11:02:590223名無しさん@お腹いっぱい。
2005/07/04(月) 11:17:24ttyrec
切り替えコマンドをスクリプトに割当てて、その中で記録
0224222
2005/07/04(月) 12:21:07ども.ttyrec はやりすぎかなと.切り替えコマンド使うと next/prev/select
とか全部定義し直さないと駄目ですよね?
シェル側でやろうかとも思ったのですが,新規の時はともかく切り替えはキャッ
チできないし... なんかうまい方法ないっすかね.
0225名無しさん@お腹いっぱい。
2005/07/04(月) 12:45:410226名無しさん@お腹いっぱい。
2005/07/04(月) 13:41:17美しさにこだわって、いつまでたっても実用に耐えない OS よりナンボかマシ。
0227222
2005/07/04(月) 13:44:30$WINDOW が空に... echo とか exec (backtick も) って %n とか効かないです
よね... うーん,あと一息な気が.手動で exec すれば動くんだけどな.
0228177
2005/07/04(月) 13:57:04こちとらきみたちと違って暇じゃないんです
0229名無しさん@お腹いっぱい。
2005/07/04(月) 14:03:16PIPE_BUFと_POSIX_PIPE_BUF見てないscreenが行儀悪い。
>>228
俺らも忙しいから自分で調べてくれないかな?(^Д^)
0230Linux
2005/07/04(月) 18:03:23教えて君のおめーなんかきらいだ。とっととでてけw
こちとら自分で考えない人につかってもらいたくないね。
0231名無しさん@お腹いっぱい。
2005/07/04(月) 19:13:23本日7月4日、下記スレを拠点に支那反日サイトへ一斉に
田代砲を発射し、 これを破壊します。参加者はいかのスレ
に参加してください。 野蛮なる支那人へ、日本の義憤を
見せつけましょう! 今夜8時に作戦会議がBARギコで開かれ
ますので、有志のみなさんは是非、お集まりください!
なお、BARギコの会議で決まったことについては、随時
このスレに書き込みます。
★拠点
【織姫と】中国バカーVS日本ビパー【彦星が呆れてる】part105
http://ex11.2ch.net/test/read.cgi/news4vip/1120396339/l50
★BARギコ
http://cgi36.plala.or.jp/bargiko/multithread/bargiko.cgi?roomID=1120318128674
★詳細情報のサイト(文字化けしているので、修正して見てください)
http://vvipper.e-city.tv/1.htm
★まとめサイト
http://vipmomizi.jog.buttobi.net/
0232名無しさん@お腹いっぱい。
2005/07/04(月) 19:16:23アイツらと同じようなことすんなよ、くだらん。
0233名無しさん@お腹いっぱい。
2005/07/04(月) 19:34:530234Linux
2005/07/04(月) 19:37:36おれもそんな奴相手にするんじゃなかった。
0235名無しさん@お腹いっぱい。
2005/07/04(月) 21:12:19backtick の場合は WINDOW と STY は設定されないよ。WINDOWはと
もかく STY ぐらいは設定してくれてもいいと思う
0236222
2005/07/06(水) 11:19:13bind n eval next 'exec script'
みたいにして,next/prev/other/select にスクリプトを仕込みました.
これだとコマンドラインからの切り替えとか,他にも抜けがありそうだけど...
0237名無しさん@お腹いっぱい。
2005/07/06(水) 21:25:08今さらだけど、
`ウィンドウの切り換えログ'
の、意味が分かんない。
0238名無しさん@お腹いっぱい。
2005/07/06(水) 21:29:410239名無しさん@お腹いっぱい。
2005/07/07(木) 16:42:130240名無しさん@お腹いっぱい。
2005/07/07(木) 21:59:560241名無しさん@お腹いっぱい。
2005/07/07(木) 22:52:30どやって?
0242名無しさん@お腹いっぱい。
2005/07/07(木) 23:46:570243名無しさん@お腹いっぱい。
2005/07/07(木) 23:58:440244名無しさん@お腹いっぱい。
2005/07/19(火) 16:41:19s -laなんかして、画面の上に消えてしまった出力を、「Shift + PageUP」キーでスクロールアップして確認できますよね。
ところが、>>82-106を参考に256色対応にしてから、screen上でShift+PageUPキーを押しても、screen上での出力は表示されず、screenを起動する前の画面が表示されてしまいます。
いろいろ調べた結果、「eval `tset -sQI xterm-screen`」や、「export TERM=xterm-screen」をしなければscreen上でもShift+PageUPが効くことまでは確認ができたのですが、これをしないと256色表示されないし・・・。
.tercapで指定しているxterm-screenは >>101 のと同じやつです。
xterm-screen:Co#256:pa#32767:AF=\E[38;5;%p1%dm:AB=\E[48;5;%p1%dm:tc=screen:
termcapはmanを読んでもわけわからんし、そもそも、本当にここが原因なのか。
なんか良い方策ないですか?
0245名無しさん@お腹いっぱい。
2005/07/19(火) 18:22:330247名無しさん@お腹いっぱい。
2005/07/20(水) 16:02:300248名無しさん@お腹いっぱい。
2005/07/20(水) 16:57:590249名無しさん@お腹いっぱい。
2005/07/20(水) 17:36:39んじゃ termcap の ti を無効にするか、
screen/display.c の AddCStr(D_TI); をコメントアウト。
0250244
2005/07/21(木) 15:20:08コピーモードの中でカーソル移動にEmacsのキーバインドを使うと意図しないところに動いちゃんですよね。ストレスフルなのであきらめました。簡単にEmacsのと同じにカスタマイズできるのかな?
>> 249
termcapのti無効でうまく行きました!アリガトー
tiを無指定で追加しただけ、ですけどこれでいいのかな?manも見てみましたがサッパリ。
xterm-screen:Co#256:pa#32767:AF=\E[38;5;%p1%dm:AB=\E[48;5;%p1%dm:ti:tc=screen:
0251名無しさん@お腹いっぱい。
2005/07/21(木) 15:21:50キーバインドは変えれる。
0252名無しさん@お腹いっぱい。
2005/07/21(木) 17:38:22editするとき以外はviのバインドが好きだ。
0253名無しさん@お腹いっぱい。
2005/07/22(金) 09:13:460254名無しさん@お腹いっぱい。
2005/07/22(金) 16:33:550255244
2005/07/22(金) 19:10:28>>251 manを探したらありました。
markkeys "h=:l=:j=:k=:$=:0="
とりあえずこれだけ設定してみたが、かなり楽になった。アリガトー!
# screenを使いはじめた頃.screenrcに「markkeys "h=^B:l=^F:$=^E"」をコピー&ペースト(「^+B」とかだから無意味)して使えねーと思ったまま忘れていたのは秘密
0256244
2005/07/22(金) 19:14:45markkeys "h=^B:l=^F:j=^N:k=^P:$=^E:0=^A"
0257名無しさん@お腹いっぱい。
2005/07/23(土) 09:46:21何をムキになって自分が適応力がない無能な人間だってことを宣伝し続けているのか?
0258252
2005/07/23(土) 10:34:15w3mやview-mode@emacsなどではhjklだね。
編集時以外はhjklを使いたいと漏れの手が言ってる。
なかなかhjklに慣れないんだったら、rogueでもやればいいよ。
0259名無しさん@お腹いっぱい。
2005/07/23(土) 11:42:210260名無しさん@お腹いっぱい。
2005/07/23(土) 13:50:110261名無しさん@お腹いっぱい。
2005/07/23(土) 13:52:510262名無しさん@お腹いっぱい。
2005/07/26(火) 03:29:08> hardstatus alwayslastline "%{= wr}%H: %{= .b}%-Lw%{= bw}%50>%n%f* %t%{-}%+Lw%< %= %{= .k}%y/%m/%d(%D) %c"
http://acapulco.dyndns.org/hiki/hiki.cgi?%28Gentoo%29Screen
0263名無しさん@お腹いっぱい。
2005/07/26(火) 14:53:39screen -X echo '^[[1;34mほげ'
とかやっても駄目みたいなんすが。
0264名無しさん@お腹いっぱい。
2005/07/26(火) 15:06:01sorendition
0265名無しさん@お腹いっぱい。
2005/07/26(火) 15:25:33うをっ、見付けきれなかったよ。thx!!
0266名無しさん@お腹いっぱい。
2005/08/16(火) 03:01:020267名無しさん@お腹いっぱい。
2005/08/16(火) 03:14:24screen使わなくても不便感じなくなってきた。
0268名無しさん@お腹いっぱい。
2005/08/16(火) 04:49:440269名無しさん@お腹いっぱい。
2005/08/16(火) 10:11:39君は、まだscreenの本当の価値が見えてないな。
0270名無しさん@お腹いっぱい。
2005/08/16(火) 10:14:590271名無しさん@お腹いっぱい。
2005/08/16(火) 10:21:050272名無しさん@お腹いっぱい。
2005/08/16(火) 10:26:400273名無しさん@お腹いっぱい。
2005/08/16(火) 11:48:550274名無しさん@お腹いっぱい。
2005/08/16(火) 12:32:48という三段論法だろう。
0275名無しさん@お腹いっぱい。
2005/08/16(火) 12:47:310276名無しさん@お腹いっぱい。
2005/08/16(火) 13:14:32でも「画面の馬鹿でかいPC」って言ってたよ????
0277名無しさん@お腹いっぱい。
2005/08/16(火) 13:41:52つーかアリストテレスの師匠の師匠ソクラテスが説く「無知の知」を自覚しろ
0278名無しさん@お腹いっぱい。
2005/08/16(火) 13:42:420279名無しさん@お腹いっぱい。
2005/08/16(火) 13:44:15やり直すもなにも一度もやってないとか
0280名無しさん@お腹いっぱい。
2005/08/17(水) 02:46:00作った。それと、インクリメンタルサーチのときにCRでインクリメ
ンタルサーチを終了できるようにした。
*** screen-4.0.2.orig/search.c 2003-09-08 23:26:45.000000000 +0900
--- screen-4.0.2/search.c 2005-08-17 02:35:18.310000000 +0900
***************
*** 50,62 ****
int dir;
{
struct markdata *markdata;
! if (dir == 0)
{
markdata = (struct markdata *)flayer->l_data;
! if (markdata->isdir > 0)
! searchend(0, 0, NULL);
! else if (markdata->isdir < 0)
! backsearchend(0, 0, NULL);
else
LMsg(0, "No previous pattern");
}
--- 50,72 ----
int dir;
{
struct markdata *markdata;
! if (dir == 0 || dir == 2)
{
markdata = (struct markdata *)flayer->l_data;
! if (markdata->isdir > 0) {
! if (dir == 0) {
! searchend(0, 0, NULL);
0281名無しさん@お腹いっぱい。
2005/08/17(水) 02:47:13! backsearchend(0, 0, NULL);
! }
! }
! else if (markdata->isdir < 0) {
! if (dir == 0) {
! backsearchend(0, 0, NULL);
! } else {
! searchend(0, 0, NULL);
! }
! }
else
LMsg(0, "No previous pattern");
}
***************
*** 77,85 ****
markdata = (struct markdata *)flayer->l_data;
p = markdata->md_window;
! markdata->isdir = 1;
! if (len)
strcpy(markdata->isstr, buf);
sx = markdata->cx + 1;
ex = flayer->l_width - 1;
for (y = markdata->cy; y < p->w_histheight + flayer->l_height; y++, sx = 0)
--- 87,96 ----
markdata = (struct markdata *)flayer->l_data;
p = markdata->md_window;
! if (len) {
0282名無しさん@お腹いっぱい。
2005/08/17(水) 02:51:53strcpy(markdata->isstr, buf);
+ }
sx = markdata->cx + 1;
ex = flayer->l_width - 1;
for (y = markdata->cy; y < p->w_histheight + flayer->l_height; y++, sx = 0)
***************
*** 106,114 ****
struct markdata *markdata;
markdata = (struct markdata *)flayer->l_data;
! markdata->isdir = -1;
! if (len)
strcpy(markdata->isstr, buf);
ex = markdata->cx - 1;
for (y = markdata->cy; y >= 0; y--, ex = flayer->l_width - 1)
{
--- 117,126 ----
struct markdata *markdata;
markdata = (struct markdata *)flayer->l_data;
! if (len) {
! markdata->isdir = -1;
strcpy(markdata->isstr, buf);
+ }
ex = markdata->cx - 1;
for (y = markdata->cy; y >= 0; y--, ex = flayer->l_width - 1)
{
***************
*** 255,260 ****
0283名無しさん@お腹いっぱい。
2005/08/17(水) 02:52:30pos = markdata->isstartpos;
/*FALLTHROUGH*/
case '\033': /* ESC */
+ case '\r': /* ESC */
*p = 0;
break;
case '\013': /* CTRL-K */
*** screen-4.0.2.orig/mark.c 2003-09-08 23:26:00.000000000 +0900
--- screen-4.0.2/mark.c 2005-08-17 01:56:06.280000000 +0900
***************
*** 794,799 ****
--- 794,802 ----
case 'n':
Search(0);
break;
+ case 'N':
+ Search(2);
+ break;
case 'y':
case 'Y':
if (markdata->second == 0)
長文すいません。
0284名無しさん@お腹いっぱい。
2005/08/29(月) 21:44:20みたいな感じで、未読メール数をhardstatusに表示しようと思ったのですが、
passwordが設定されてると、screen -Xオプションが使えません。
password使用時にも使える、代替案ないもんでしょうか。
0285名無しさん@お腹いっぱい。
2005/08/29(月) 21:58:47hardstatus を "%H: [%h] %w" としておいて、
$ echo "^[_`ls ~/Maildir/new/|wc -l`^[\\"
とか?
0286284
2005/09/01(木) 04:58:06なるほど。参考になります。%hはいろいろ使えそうですね。
けど、現在のウィンドウのみでしか効果がないので、
今回の意図にはもう一工夫必要そうです。もう少し考えてみます。
■ このスレッドは過去ログ倉庫に格納されています