chira-ura のメモを vim キーバインドで素早く閲覧・編集・保存する TUI ツール。
読み込み元は設定(YAML)で選ぶ — SQLite を直接(既定 ~/.chira/ura.db)か、chira md が出す md ディレクトリ。
どのパスもアプリにハードコードしない。
# 設定(YAML)の source に従う(既定は db: ~/.chira/ura.db)
rum
# md/txt ディレクトリを開く
rum path/to/notes
# chira-ura の DB を直接開く
rum --db ~/.chira/ura.db
# 設定ファイルを指定
rum --config ./rum.yaml探索順: --config <file> / 環境変数 RUM_CONFIG → ./rum.yaml → ~/.config/rum/config.yaml → ~/.chira/rum.yaml
boxes:
- name: メモ
source: db
db: ~/.chira/ura.db
- name: 下書き
source: dir
dir: ~/.chira/md単一の source, db, dir も後方互換で動作します。
~ は展開されます。rum.example.yaml を参照。
- BOX: 箱(ノートブック)の一覧。箱 = 読み込み元(SQLite / ディレクトリ)。
- 紙(シート): 選択中 BOX の紙一覧。1 枚 = 1 ノート。
- エディタ: 紙の本文。1 枚は たて 24 行固定(25 行目は入力不可)。溢れたら新しい紙に続きを書く。
- 裏写り: おもて面の文字が裏からうっすら透ける演出(空行に直前の紙の行が淡く重なる)。既定 ON、
:set ura/:set nouraでトグル可能。
Normal: 閲覧・カーソル移動・各種コマンドの受付Insert: テキスト入力・編集Visual: 範囲選択(v)Command::でコマンド入力Search:/で検索入力
Tab/Shift-Tab: ペイン移動(BOX ↔ 紙 ↔ エディタ)↑/↓(十字)またはj/k: リスト選択 / エディタの行移動n: フォーカス中ペインで新規作成- BOX ペイン → 箱を新規(
:box <name> <db|dir> <path>) - 紙ペイン → 紙を新規
- BOX ペイン → 箱を新規(
Ctrl-n/Ctrl-p(または]s/[s): 次の紙 / 前の紙
h,j,k,l: 左 / 下 / 上 / 右w: 次の単語先頭b: 前の単語先頭0: 行頭$: 行末gg: 先頭行G: 最終行Ctrl-p: 前の紙Ctrl-n: 次の紙
i: カーソル位置で Insert モードa: カーソル右で Insert モードI: 行頭で Insert モードA: 行末で Insert モードo: 下に新しい行を挿入して Insert モードO: 上に新しい行を挿入して Insert モードx: 1文字削除dd: 1行削除(切り取り)yy: 1行ヤンク(コピー)p: 貼り付けu: Undo(元に戻す)Ctrl-r: Redo(やり直し)Ctrl-s: 上書き保存(クイック保存)
- 履歴は開いているドキュメントごとに 1 つで、Normal / Insert / Visual の各モードで共有します。ファイルやノートを切り替えると履歴は空になります。
- モードの切り替え自体は履歴を変更しません。
iで Insert に入り、編集せずにEscで戻っても undo を 1 回分消費せず、redo も消えません。 - 1 回の undo 単位は、Insert モードでの 1 回の入力セッション(
i〜Esc)、または Normal / Visual での編集コマンド 1 回(x,dd,p, Visual のd/x)です。入力していないセッションは履歴に残りません。 u/Ctrl-rは Normal モードのキーです(Insert / Visual では undo / redo しません)。- 新しい編集を行うと、それ以降の redo は無効になります。
- 履歴は最大 200 件です。
/pattern: 検索n: 次の一致へN: 前の一致へ
:w [path]: 保存(パス省略時は現在のファイル):q: 終了(未保存時は警告):q!: 変更を破棄して強制終了:wq/:x: 保存して終了:e <path>: 指定ファイルを開く:e! [path]: 現在のファイルまたは指定ファイルを再読み込み(変更破棄):new: 新規紙作成:next/:prev: 次/前の紙を開く:set ura/:set noura: 裏写り演出の有効化 / 無効化:box <name> <db|dir> <path>: 新規 BOX の追加・設定保存:md [dir]: 外部コマンドchira md [dir]を実行(要cargo install chira-ura):sync [dir]: 外部コマンドchira md import [dir]を実行(要cargo install chira-ura。未導入時はインストール案内を表示)
未保存の変更がある間は、:db / :dir / :new / :next / :prev / :e はバッファを差し替えず、その理由をメッセージに表示します。:db / :dir の読み込みに失敗した場合は読み込み元を切り替えません。
notes(id, title, content, updatedAt)を直接読み書きします(chira-ura と同じスキーマ)。- 保存は
updatedAt = 現在時刻(ミリ秒)で upsert。idが無ければnote-<timestamp>-<rand4>を採番。 - サイドバーはノート(新しい順)。
Ctrl-p/Ctrl-nで前後のノート。
- front matter(
id/title/updatedAt)を持つ md はフォーマットを維持して保存。 - 保存時、
updatedAtは現在時刻(ミリ秒)に自動更新。idが無ければ採番。 - front matter の無いテキストファイルは素テキストのまま保存。