Glide Note

glidenote's blog

シンプルなメモ管理用プラグインmemolist.vimを作った

Octopressの記事を書くときにカスタムしたjekyll.vimを 利用していて、「新規作成」と「記事の管理」が非常に便利なので、 同じようなことが出来るメモ用プラグインを作ってみました。

memolist.vimの概要

  • 作成。決まったフォーマット(デフォルトだとmarkdown)のメモを瞬時に作成出来る(:MemoNew)
  • 管理。作成したメモの一覧表示が瞬時にできる(:MemoList)
  • 検索。メモの検索が瞬時に出来る(:MemoGrep)

どのディレクトリにいても、すぐにメモが呼び出せるので、作業メモや、議事録などを 残すのに便利です。<日付>-<記事タイトル>という形でファイルが生成されるので、 ファイル名からいつ作成したか、何の内容かも瞬時に判断出来ます。

導入方法

導入にはvundleか、NeoBundle を利用すると楽です。

vundleの場合は、

1
Bundle 'glidenote/memolist.vim'

NeoBundleの場合は、

1
NeoBundle 'glidenote/memolist.vim'

を.vimrcに記載。

.vimrcの設定

基本的には何も設定がいりませんが、.vimrcに下記マッピングを記載しておくと、 \mnと入力すると瞬時に新規ファイルの作成が出来ます。<Leader>はデフォルトだと キーボードの¥マークになっていると思います。

1
2
3
map <Leader>mn  :MemoNew<CR>
map <Leader>ml  :MemoList<CR>
map <Leader>mg  :MemoGrep<CR>

memolist.vimではデフォルトで$HOME/memoを利用するため 別のディレクトリを利用したい場合は、下記のようにmemo用ディレクトリの指定も出来ます。

1
let g:memolist_path = "path/to/dir"

その他に下記のようなオプションがあるので、用途によって変更が可能です。

2012年3月31日 テンプレート機能の追加とブール値をtrue/falseから0/1に仕様変更しました

1
2
3
4
5
6
7
8
9
let g:memolist_memo_suffix = "txt"
let g:memolist_memo_date = "%Y-%m-%d %H:%M"
let g:memolist_memo_date = "epoch"
let g:memolist_memo_date = "%D %T"
let g:memolist_prompt_tags = 1
let g:memolist_prompt_categories = 1
let g:memolist_qfixgrep = 1
let g:memolist_vimfiler = 1
let g:memolist_template_dir_path = "path/to/dir"

検索にはqfixgrepを導入し、併用すると便利です。 また私の好みでデフォルトがmarkdwon形式のファイルになっていますがmemolist_memo_suffixを 変更して、拡張子を好きなものに変更可能です。

使い方

メモの作成 (:MemoNew)

1
:MemoNew

入力したメモのタイトル名がそのままファイル名にも利用されます。

メモの一覧表示 (:MemoList)

1
:MemoList

netrwを呼び出し、メモ一覧の表示

メモの検索 (:MemoGrep)

1
:MemoGrep

qfixgrepを利用した際の検索結果。

qfixgrepを導入している場合は、 下記を.vimrcに追記して、デフォルトのvimgrepからqfixgrepに切り替え可能です。

1
let g:memolist_qfixgrep = 1

メモ用のvimプラグインというとqfixhowmが 定番でありますが、Vimプラグインの作り方を覚えたかったので、 普段自分がよく使う機能だけを実装して作成してみました。 デフォルトのファイル形式をmarkdownにしたのは あとからいろんな形式に変換しやすいのと、箇条書きに適しているので。

ちなみに私は下記を.vimrcに記載して利用してます。

1
2
3
4
5
6
Bundle 'fuenor/qfixgrep.git'
Bundle 'glidenote/memolist.vim'
let g:memolist_qfixgrep = 1
map <Leader>ml  :MemoList<CR>
map <Leader>mn  :MemoNew<CR>
map <Leader>mg  :MemoGrep<CR>

バグや要望などありましたら@glidenoteかgithubのissueに連絡頂ければと思います。 MacとLinuxでは動作確認済みですが、普段利用せず検証環境の無いWindowsは…
2012年3月31日 windows環境でも動作するようになっています

Comments