CAPITAL REGISTERS

vi は a から z の名前付きレジスタを持っていて、ユーザは自由にそれを使うことができる。

vim はこれを拡張し、A から Z までのレジスタの指定も許す。これは新しいレジスタが 26 個増えるわけではなく、[a-z] レジスタに対する特別な別名として振る舞う。たとえばレジスタ A を指定してヤンクした場合、それは a レジスタがもともと持っていた内容への追記を表す。これは有用な機能なので、wasavi でもそういうふうに動作する。

では、A から Z までのレジスタを指定しつつ、それを読み出す動作を行わせた場合どうなるんでしたっけ?

とりあえず、vim では読み出しの場合は A レジスタは単に a レジスタの内容を返すようである。書き込み時のような特別扱いはない。しかしこの透過性って必要なんだろうか? 読み出し時にも特別扱いしていいのではないか。

というわけで、wasavi では、[A-Z] レジスタからの読み出しにおいては、以下のように振る舞うようにした。

  • B レジスタ: ブラウザのユーザーエージェント文字列を返す
  • D レジスタ: 現在の日付時刻の文字列を返す
  • T レジスタ: wasavi が属するページのタイトルを返す
  • U レジスタ: wasavi が属するページの URL を返す
  • W レジスタ: wasavi のバージョン文字列を返す

これ以外の [A-Z] レジスタは、単に空文字列を返す。

Leave a Reply

Your email address will not be published. Required fields are marked *