頭の中だけで整理しようとするとややこしいのでメモっとく。ざっと勉強しただけのやっつけまとめ。テキスト本体の編集の話ではなく、あくまで表示などに関わる属性の話。とりあえずはGTK+2向け。
まずTextViewのテキスト全体に対する操作は、TextViewがdefault_attributesとして持っているGtk::TextAttributesをいじればいいのだが、
対してテキストの一部分に適用するための属性は、テキストの範囲を指定して設定するGtk::TextTagを介して操作する。TextTagを使うには、まずTextBufferに紐付けられているGtk::TextTagTableに登録した上で、テキスト上の位置を指定して貼り付ける。TextTagの作成、貼り付けはTextBufferのメソッドで行う。
【参考リンク】
GTK+ 2 Reference Manual: Text Widget Overview
Ruby/GTK API Reference - Ruby-GNOME2 Project Website