w3mにコマンドを作ってみた

カーソルのある行を第1行になるようにスクロールするという機能
(vimで言うところのz > t)
が欲しくて私家版w3mをビルドするついでに自前のFUNCTIONを見よう見まねで追加してみた。
すでにありそうな気もするが…


main.cのCENTER_Vを改造。
CENTER_Vの次あたりに追加。

/* A line with cursor is carried out first */
DEFUN(csrFirstline, CSR_FIRSTLINE, "A line with cursor is carried out first")
{
  Currentbuf->topLine =
    lineSkip(Currentbuf, Currentbuf->topLine, Currentbuf->cursorY, FALSE);
  arrangeLine(Currentbuf);
  displayBuffer(Currentbuf, B_NORMAL);
}

proto.hに対応するFunctionを追加。

extern void csrFirstline(void);

これで、./configure && make
したらうまくいった。

仕上げに.w3m/keymapに

keymap z CSR_FIRSTLINE

などと追加してみた。

      • -

さっき見たら、あまりにもコード内の英語がおかしいので直したw(機械翻訳で)