w.vimをつくっています

f:id:yuhei_kagaya:20140803125117p:plain:w798

https://github.com/violetyk/w.vim

メモの管理

w.vimはメモを管理するためVimプラグインです。

僕はメモを書くときは単純に記録の他、考えるときや作業するときの頭の整理のためにも書くことが多いのですが、そのメモを管理するツールは今までいろいろなものを使ってきました。
今回w.vimは、自分が欲しいものを自分で作ってみようと思ったことがきっかけで始めてみました。

どんなメモ管理ツールが欲しかったか

次のようなことを考えていました。

  • 紙copiぽいのが良い
    • メモ本体は単純なテキストファイルで残したい。
    • タイトル一覧のサイドバーが見えている安心感が欲しい
  • タグで管理したい
  • 開き直すメモのほとんどが最近使ったメモなので、最近のメモを簡単にすぐに開きたい
  • プログラムを書くときにVimが多いので、Vimでメモを取りたい
  • メモ管理ツールで書いたメモをそのまま簡単にアウトプットしたい(Qiita、Qiita::Team、はてなブログ、Gistなどへ)
  • Dropboxとかにおいてシンクしたい
  • Vimで書いたメモをiPhoneアプリでも見たい、すこし編集したい


簡単に言うと紙copiVim+書いてそのままアウトプットしたい、です。


このうち、Qiita等へのアウトプット機能やスマホアプリ連携はまだできていません。
Qiita等へのアウトプット機能は、w.vimのメニュー部分をプラガブルに作ったのでそれにのっけようと思っています。「Qiitaへ投稿する」のようなメニューを提供するプラグインをつくるイメージです。

セットアップ

NeoBundle 'violetyk/w.vim'

メモのファイルパスとタイトル紐付けとタグの管理用途でSQLiteを使っているので、別途SQLiteが必要です。全部テキストファイルで管理できれば良かったのですが、将来的にスマホ連携ができたときに扱いやすいかなあと思ってSQLiteにしてみました。Macだと最初から入っているかもしれません。

使い方

:WSidebarOpenコマンドを実行すると、サイドバーを開きます。

:WSidebarOpen

サイドバー上でキーを押して操作します。

キー 操作
c 新しいメモを作成する
<CR> カーソル行上のメモやタグを開く
m カーソル行上のメモでメニューを開く
s 語句を入力してメモを検索する
メモの作成

サイドバーの右側に新しいバッファが作成されるので、メモを書きます。
このとき簡単なルールがあって、

  • 1行目がタイトル
  • 2行目の [括弧囲った部分] が [タグ]

になります。タグはなくても、何個つけても良いです。
メモを保存すると、サイドバーに作成したメモの情報が表示されます。

サイドバーでの選択

サイドバー上でエンターを押すと、選択になります。

  • カーソル行にメモのタイトルがあるとき、メモを開きます。
  • カーソル行にタグがあるとき、選択されたタグのメモの一覧をサイドバーに絞り込み表示します(~で元のサイドバーへ戻る)
メニュー機能

サイドバー上でmを押すと、コマンド部分にメニューが表示されます。メニューはj、kで移動してエンターで選択、qやESCでキャンセルです。今は削除しかないです。

NERDTree

w.vimをつくる際、scrooloose/nerdtree · GitHubのソースを良く読みました。
あのとても便利なサイドバーUIを作るのにかなり地道で大変なことを丁寧にやっているのがわかって、とても勉強になりました...。NERDTreeすごい。

今後

QiitaやGistへ投稿するメニューを作っていきたいと思います。