nDiki : Org Capture

2014年3月25日 (火)

EmacsOrg Capture でぼっちつぶやき

あとで整理してまとめたりできるように、ふと思ったことを非公開で1人 Twitter タイムライン的にログっておくのに PC 上でなかなかいいのないんだよねとずっと思っていたんだけれど Emacs の Org mode にある Org Capture 試してみたらいい感じだった。

普段 Org mode 使っていないので Org Capture で必要なところだけ設定してみた。

 (require 'org)

 (setq org-capture-templates
       '(
         ("t" "Timeline (local)"
          plain
          (file (concat "~/var/timeline/timeline-" (format-time-string "%Y-%m-%d") ".md"))
          "- [%(format-time-string \"%Y-%m-%d %H:%M:%S\")] %?\n")
         ("n" "Note (local)"
          plain
          (file (concat "~/var/note/" (format-time-string "%Y-%m-%d-%H%M%S") ".md"))
          "# %?\n[%(format-time-string \"%Y-%m-%d %H:%M:%S\")]\n")
         ("T" "Timeline"
          plain
          (file (concat "/naney@example.com:/home/naney/var/timeline/timeline-" (format-time-string "%Y-%m-%d") ".md"))
         "- [%(format-time-string \"%Y-%m-%d %H:%M:%S\")] %?\n")
        ("N" "Note"
         plain
         (file (concat "/naney@example.com:/home/naney/var/note/" (format-time-string "%Y-%m-%d-%H%M%S") ".md"))
         "# %?\n[%(format-time-string \"%Y-%m-%d %H:%M:%S\")]\n")))

 (global-set-key (kbd "\C-cc") 'org-capture)

'C-c c t' すると

 - [2014-03-25 23:24:25]

が書かれたバッファが開くので適当に何か書いて C-c C-c する。と、~/var/timeline-2014-03-25.md にその内容が追記される。

TRAMP でリモートホスト上のファイルを開く時のファイル名を指定してみたらうまくいったので、さくっとリモートファイルにも追記できてすごく嬉しい。ので 'C-c c T' で書き込めるように設定してみた。これで Dropboxrsync / Unison などで同期する必要がなくていろいろ良い。

あとは追記型ではなくて都度新しくノートファイルを起こすタイプの設定も追加しておいた('C-c c n' と 'C-c c N' で呼び出し)。howm で 'C-c , c' するのと同じ感覚で作れる。こちらもリモートホスト上にファイル名で悩む必要なくさくっとノートを書いておくことができて良い(そのかわり howm みたいに grep できないけれど)。

2014年3月27日追記

リモートホスト上のファイルへの保存の方を良く使うので、'C-c c' の後のキーは小文字の方をリモートに、大文字の方をローカルに変更。

スポンサード リンク
[ 3月25日全て ]

2014年4月6日 (日)

Twitter を使い始めて7年

2007年4月6日に Twitter のアカウントを作ったので今日で丸7年。ちなみに mixi2004年11月19日に登録したので、9年5カ月弱ぐらい。Facebook2008年5月24日の登録なので、5年11カ月弱ぐらい。

なんだかんだいってもライフログ的に書き込んでおくには Twitter が一番便利。アーカイブしやすいし。フィードバックをもらえるという点では mixiFacebook の方が自分の場合上。

現時点では Twitter クライアントは

を使っている。去年言っていたプライベート的なログは今は Day One。結構気に入っているのでこれのために Linux から OS X に変えたいなあと思うぐらい。

ぼっちつぶやきとしては Emacs + Org Capture (記事) はまだ howm の C-c , c ほど手に馴染んでいないのでなんともいえないけれども慣れたら結構いけるんじゃないかな。ただこちらは永続的に残しておくというよりは後で記事にまとめるためのキャプチャ用という感じ。

[ 4月6日全て ]

2014年5月22日 (木)

EmacsOrg Capture から howm に書き込むようにした

ぼっちつぶやき用に Org Capture を3月に設定したのだけれど、2カ月使ってみて howm からもアクセスできた方が便利だなと感じたので設定を変更した。

 (require 'org)

 (setq org-capture-templates
       '(
         ("h" "howm"
          plain
          (file (concat "~/var/howm/notebook/" (format-time-string "%Y/%m/%Y-%m-%d-000000") ".md"))
          "- [%(format-time-string \"%Y-%m-%d %H:%M:%S\")] %?\n"
          :unnarrowed t)))

 (global-set-key (kbd "\C-cc") 'org-capture)

書き込み先を howm と同じディレクトリ・ファイル名に。あとデフォルトで、書き込み時に追加部分だけのバッファが開くようになっていたのだけれど :unnarrowed を t にして、その日の前の書き込みを見ながら(あるいはあわせて編集して)書けるようにした。

[ 5月22日全て ]

2014年6月27日 (金)

思い浮かんだことを LinuxAndroidiOS から同じテキストファイルにさっと書けるようにする組み合わせ

「PC を使っている時に思い浮かんだこと」の capture には EmacsOrg Capture を使っている。これで随時追記して howm を使って閲覧・整理するようにしている(記事)。PC 上では Emacs からテキストファイルに書き込むのがなんだかんだいって一番ストレスが無い。 ただこれだと Android デバイスや iOS デバイスから気軽に追記できないのが不便だった。

もともとそのテキストファイル自体は Dropbox 上に置いてあるので、モバイルデバイスから読み書きするのに以下の条件で各 OS 用のアプリを選んでみた。

  • Dropbox 上のテキストファイルを直接読み込んで、編集・保存できる。
  • アプリを起動したら前回のファイルを開いた状態になっていてすぐに追記できる。
  • Dropbox 上のファイルが更新されているのをアプリ側で検知して読み込みなおせる。
  • 可能であれば日時を 「- [%Y-%m-%d %H:%M:%S] 」なテンプレートとして挿入できる。

で今まで使っているアプリの中から以下をチョイス。 この組み合わせで思い浮かんだネタなんかをどこでも1箇所にまとめて書き込んでおけるようになったので便利。

Jota+ と Jota+ Dropbox Connector (Android)

rimage:http://www.naney.org/nDiki/2014/06/27/jota.png

高機能エディタAndroid デバイスでプログラムを書いたり長文編集したりしないのでそれほど活用できていなかった。なので capture 専用にしようかなと。設定で

  • 起動時の動作で「前回開いたファイルを開く」に。
  • 自動保存をオン。
  • ファイルの変更確認をオン。

にしておく。朝に一度今日のファイルを開いておけば、その後はアプリを開いてすぐ今日のファイルに書き込めるようになる。定形文機能で Org Capture の設定と同じように日時も挿入できる。

PlainText 2 (iOS)

rimage:http://www.naney.org/nDiki/2014/06/27/mzl.azxwzzus.175x175-75.jpg

日時のテンプレート挿入はできない以外は条件を満たしている。iOS デバイス (iPod touch 5th) はサブ機なので許容。

シンプルなので、ちょっとしたノートとしてはストレス無く読み書きできる。


[ Android アプリレビュー ]

[ 6月27日全て ]

2014年6月30日 (月)

今日のさえずり: the Porter Stemming Algorithm (Lingua::Stem::En) とか10年ぶりレベル

2014年06月30日

  • 08:33 Emacs Org Capture のキーを C-c c h から C-c c c に変更。
  • 15:15 Markdown ファイルに <meta http-equiv="refresh" content="..."> の説明を書いておいたら、別のページに飛ばされて笑った。
  • 20:10 the Porter Stemming Algorithm (Lingua::Stem::En) とか10年ぶりレベル。
[ 6月30日全て ]

2014年7月1日 (火)

テキストファイルに capture するようになったら Tweet が減った

今は平日だと、mixi日記と、この Web 日記(nDiki)と、Day One でのプライベート日記を書いているのだけれど、Emacs Org Capture 環境を見直してそちらに出来事や気がついたことを capture するようにしたら捗るようになった。

そのかわり、Twitter への都度 Tweet が減ってしまって若干寂しい。

[ 7月1日全て ]

2014年7月4日 (金)

Emacs で更新するたびにバッファを自動で上書き保存する設定

ノート PC 上の EmacsDropbox で共有しているファイルを編集してフタを閉じて家を出る。 スマートフォンだったり別の端末でそのファイルを参照したり続きを書こうとしたりしたら……あれさっき書いたやつは……上書き保存 (C-x C-s) し忘れたままサスペンドしてしまったか……。あるある。

結構切ないので更新するたびに自動で上書き保存するように設定しておくことにした。 この手のは kentaro 氏 の auto-save-buffers-enhanced.el が有名なようなのでそれを利用させていただく。

設定はとりあえず以下。

 (require `auto-save-buffers-enhanced)
 (setq auto-save-buffers-enhanced-interval 3)
 (setq auto-save-buffers-enhanced-include-regexps '("/howm/capture/"))
 (auto-save-buffers-enhanced t)

~/var/howm/capture/ 以下など /home/capture/ がパスに含まれるものを自動的に保存するように設定した。慣れてきたらだんだん対象を増やすつもり。

自分は開いているプログラムのソースファイルに気がついたら 'p' とかよく間違えて入力しちゃっていることがあるので、全部自動保存対象にするのはやめておく。あと保存したら即公開系のものもちょっと危険なので対象外にしておくつもり。

それとファイルの保存時に hook で delete-trailing-whitespace を呼んで行末の余分な空白文字列は除去しようとしている(プログラムを書く人ならみんなそうしているよね?)んだけれど、しょっちゅう自動保存が走ってそのたびに毎回行末の空白が消えるとちょっと困る(英単語間のために空白を入力している状態の時とか)。

Org Capture で追記する時なんかも

 - [2014-07-04 23:10:20] (←ここにスペース1コ)

を自動挿入しているのだけれど挿入した直後に上書き保存されてテンプレートの最後の空白が無くなるとがちょっと嫌。ということでインターバルは3秒に設定してみた。これぐらいなら問題ないはず。

[ 7月4日全て ]

2014年7月23日 (水)

Dropbox 時代なので Emacs で (global-auto-revert-mode t) した

最近は howm / Org Capture のファイルを Dropbox で共有して複数の端末上の Emacs から編集することが増えた。

ここで Emacs でファイルを開いている状態で、別の Emacs で開いて編集したりすると、最初の方の Emacs で「changed on disk; really edit the buffer?」と出たりする。 この時、基本 r を選んで revert することがほとんどなので、もしファイルが変更されていたら、Emacs 上で自動的にリロードしてもらっていい。

ということで調べたところ

 (global-auto-revert-mode t)

としておくことで、バッファが更新されていなければ自動的に読み込み直してくれるらしい。さっそく設定。

[ 7月23日全て ]

2014年8月6日 (水)

Org Capture の書き込み先ファイルを caputre.md 固定にした

EmacsOrg Capture でタイムライン的に日時付きで短文を書き込んでいるファイルに、最近は生 EmacsAndroid デバイス・iOS デバイス上のエディタから、その日の予定とか日記の下書きなんかもまとめてそこに書いたりしているんだけれど、結構いい感じ。基本1日の終わりや翌朝に各日記に転記したりして整理している。

今は howm にあわせて %Y/%m/%Y-%m-%d-000000.md というファイル名に書き込むようにしている(記事)んだけれど、整理・繰り越ししてしまった後はその日のファイルは消してしまうので、わざわざ日を変える必要も無くなってきた。ファイル名を日別に変えると開きっぱなしにしておくファイルも毎日別のにしなければならないし。

ということで Org Capture の設定をちょっと変更。ファイル名は固定にした。

 (setq org-capture-templates
       '(
         ("c" "capture (howm)"
          plain
          (file "~/var/howm/capture/capture.md")
          "- [%(format-time-string \"%Y-%m-%d %H:%M:%S\")] %?\n"
          :unnarrowed t)))
[ 8月6日全て ]

2014年8月7日 (木)

iOS アプリ Textwell で現在日時入りテキストを書いて PlainText 2 で Dropbox 上のファイルに追記する

Dropbox 上の Markdown ファイルの最後に

 - [2014-08-07 22:23:24] つぶやきー。

みたいな行をどんどん追記する形でキャプっている。Emacs では Org Capture にて、 Android デバイスでは Jota+ で自動的に現在日時を挿入するようにしている。iOS デバイスでは PlainText 2 でこのファイルの編集をしているのだけれど、単独で現在日時を挿入する機能が無いので Textwell という iOS アプリを入れてみた。

Textwell ではテキストをさくっと書いて他のアプリに渡すのに便利なアプリっぽい。Android アプリのサポテキ(SupportText)的なポジションのアプリなのかな。 JavaScript でアクションを書いておいて実行できるのがマニアック。

現在日時を入れるアクション

Textwell にある関数だと日付が / 区切りなので - 区切りにしたい場合は自前でコードを書く必要がある。以下のような感じにしてみた。

 function zerofill(s) { return ("0" + s).substr(-2) }
 dt    = new Date();
 date  = dt.getFullYear() + "-" +zerofill(dt.getMonth() + 1) + "-" + zerofill(dt.getDate());
 time  = zerofill(dt.getHours()) + ":" + zerofill(dt.getMinutes()) + ":" + zerofill(dt.getSeconds());
 stamp = "- [" + date + " " + time + "] ";
 T("insert", {text:stamp});

PlainText 2 に末尾に追記する

Dropbox 上の /capture/capture.md ファイルの末尾に Textwell の内容を追記するアクションは以下のような感じにしてみた。

 path = "/var/howm/capture/";
 file = "capture.md";
 T("iacplaintext://x-callback-url/append?x-success=textwell:&location=dropbox&path=" + encodeURI(path) + "&name=" + encodeURI(file) + "&text=" + encodeURIComponent("\n" + T.text + "\n"));

昨日ファイル名を固定にしたのもこの仕込みだったりもする。

[ 8月7日全て ]

About Me

Naney Naney (なにい)です。株式会社ミクシィで SNS 事業の部長をしています。

nDiki1999年1月に始めたコンピュータ日誌を前身とする NaneyWeb 日記(兼パーソナルナレッジベース)です。ちょっとしたノートは nNote にあります。

※内容は個人的見解であり所属組織とは関係ありません。

月別インデックス
Process Time: 0.069849s / load averages: 1.07, 1.09, 1.07
nDiki by WATANABE Yoshimasa (Naney)
Powered by DiKicker