自分が行ってるメモに関するメモ

メモの仕方を変えようと悩んでいるが、 その前に今のメモ環境について書き出しておこうと思った。

現状

日記

1994年あたりに、天才少年ドギーハウザーっていうドラマを見て、 それからパソコン上で日記を書くようになった。 96年から今のフォーマットで日記を書いてる。

  • フロー
  • 1日1ファイル
  • ファイル名はYYYYMMDD.DAY
  • 1行目はヘッダ
    • [時刻] [タイトル]
  • 最初はこのソフトを使ってた。
  • その後は、自分でCで作ったりとか、スクリプトとかVB, Javaで書いたり、C++とFLTKで作ったり。
  • 今は自分で作ったVimプラグインを使ってる。

snippet.md

公開する予定のテクニカルな内容は snippet.md というファイルにまとめて書いてる。

  • フロー
  • Markdown
  • 箇条書きスタイル
  • 定期的に http://blog.ikejima.org に公開してる。
  • Vimで編集してる。
  • XMonadの設定のXMonad.Util.NamedScratchpadというのを使い、環境を整えている。
    • Win+Dを押すと、このファイルを開いた状態のVimが起動する。
    • もっかいWin+Dを押すとWindowが消える。
    • いつでも書ける環境にある。
  • PC間ではunisonを使って同期してる。

memex.txt

それ以外のメモはmemex.txtにまとめている。

  • ストック
  • Markdown
  • ScratchpadでWin+Aに割りあててる。
  • 同期の対象
  • 自作のvimプラグインがいくつか機能してる。
  • 新しいメモブロックはファイル先頭に追加。
  • TODOはファイル末尾に書いてある。
  • 使用例
    • TODO GFMの - [ ] でTODOを書いている。
      • vimプラグインで、TODO行でエンターを押すと、チェックをつけ、完了日を行末に追記してる。
      • 定期的に行うTODO(バックアップをとるとか)は、crontabでこのファイルにTODO行を追加する処理が書かれている。
        • crontabは実行される保証がないので、crontabがこのファイルのTODOを完了する事で実行される。
      • 区切りがついた時や年末などに、数時間かけてTODOを洗い出す作業をして、メンテナンスをしている。
    • 構造化メモ
      • howmにインスパイアされてる。
      • メモ中に >>> hoge という文字列があった場合、その上でエンターを押すと、# hogeにジャンプする。無ければ作られる。
      • メニューというメモがあり、そこからリンクを辿っていける。
      • ツリー状にする必要はないので、ホットなページとか、チートシートとかがある。
      • チートシートの例
        • コネクタのピンアサイン
    • クリップボードヒストリとして
      • クリップボードが3つ以上必要な時に、いったんメモに入れて取り出す。
      • メールの定型文とかもメモにあるので、コピーする。
      • System.out.println("" + " : " + Thread.currentThread().getStackTrace()[1].getClassName()+"."+Thread.currentThread().getStackTrace()[1].getMethodName()+":"+Thread.currentThread().getStackTrace()[1].getLineNumber());とか。
    • URL編集
      • URLをいじる時に、ブラウザのアドレスバーでやると失敗しがちなので、いったんメモにコピペしてVimで編集してから戻す。
    • 整形とか、フィルタにかけるとか。
    • Webのtextareaで編集するのが嫌な時とか。
    • 下書き
      • この文章とか。

memex.asc

秘密のメモ

  • ストック
  • GPGで暗号化されてる。
  • gnupg.vimプラグインで直接開いて、保存時に自動で暗号化される。
  • もうあんまり使ってない。
    • パスワードとかもメモしてたが、今はパスワードマネージャにまかせてる。

問題点

3のメモが大きくなり(20MBぐらい)、 同期時にコンフリクトがおきた場合の解決が大変になってきた。

meldというツールを使っているが、 ファイル2つを開いてから、UIが操作可能になるまで数十秒かかっている。

解決アイディア

memex.txtを1つのファイルから複数のファイルに分割したい。

ただ、分割したファイルを透過的に見たり編集できるツールがいる。

  • TODOをリスト表示する仮想View
    • チェックされてないTODOをリストアップ
    • そこでチェックすると元ファイルを透過的に更新する
  • ジャンプはファイル内検索で行っているので、grepにしないといけない