Plan9Portを最近良く使っています。AcmeというPlan9のエディタがあり、マウスのクリックをいろいろな場面で利用して非常に
便利なのですが、一方でキーバインドは最小限に抑えられており、どうしても僕には少し使いづらい場面がありました。
そこで、Acmeのソースコードを読んで、キーバインドを追加することに成功したので、その手順をざっと自分用のメモとして残しておきます。
text.cの中を見よう
ソースコードのファイルの中にtext.cというファイルがあります、
その中のtextypeという以下の関数を見てみましょう
void texttype(Text *t, Rune r) { uint q0, q1; int nnb, nb, n, i; int nr; Rune *rp; Text *u; if(t->what!=Body && t->what!=Tag && r=='\n') return; if(t->what == Tag) t->w->tagsafe = FALSE; nr = 1; rp = &r; switch(r){ case 0x02: // ^B emacs like left case Kleft: typecommit(t); if(t->q0 > 0) textshow(t, t->q0-1, t->q0-1, TRUE); return; case 0x06: // ^F emacs like right case Kright: typecommit(t); if(t->q1 < t->file->b.nc) textshow(t, t->q1+1, t->q1+1, TRUE); return;