タイムスタンプの入ったファイル名でメモを開くだけのVimプラグイン
以下の記事を参考にしつつ、メモをとるための vim プラグインを作ってみた際の備忘録です。
自分は以下のような方法でメモを取っています。
- メモはいつも同じフォルダの下につくる。(後で検索するのが楽なので)
- メモはメモを取った日付 YYMMDD を頭につけて、その後ファイル名でメモの題名(Subject)を示します。
- メモ本体は Markdown で書いて、読むときは Chrome / Firefox の Markdown プラグインで読むか、Markdown Viewer を使う。
この用途を満たすプラグインを作ります。その際、以下の実装仕様を取り込みます。
- メモのファイル名にタイムスタンプ(YYYYMMDDHHMMSS形式)を入れる。
- ファイル名はSubjectから生成するが、空白文字は含まれないようにする(Subjectに含まれるスペース「
_
」に置換する)。 - 保存フォルダはグローバル変数に設定する。なければ
~/Documents/Memo
に保存する。 - メモの1行目に日付と、Subject を自動で入力する。
要するにvimのコマンドラインモードで :Memo ほげほげ
のように打つと、20200901120105_ほげほげ.md
のような名前のファイルを開いて、メモができるようにします。
実装環境
> vim.exe --version
VIM - Vi IMproved 8.2 (2019 Dec 12, compiled Dec 12 2019 13:19:27)
MS-Windows 32 ビット コンソール 版
ただし、バージョン依存が強いものは使っていないので、autoload が動く vim なら大体動くはずです。
成果物
GitHub にアップロードしてありますので、よろしければどうぞ:
実装上のポイント
基本方針
- 本体は
autoload
とplugin
に分割する。- スクリプトの大半は
autoload/memo.vim
に置くことで、起動のオーバーヘッドを減らす。 -
plugin/memo.vim
側はコマンドの呼び出し設定のみ書く。
- スクリプトの大半は
- vim-plug で管理できるようなフォルダ構成にする。
使い方
準備(インストール)
vim-plug
を使っているのであれば、以下のような感じにして...
call plug#begin('~/.vim/plugged')
Plug 'aikige/memo.vim'
call plug#end()
vim をコマンドラインモードにして、 :PlugInstall
コマンドを呼び出してインストールしてください。
プラグインマネージャを使っていないのであれば、github からExportしたZIPファイルをお使いの ~/.vim/
以下、ないし %USERPROFILE%\vimfiles
などに展開すれば動きます。
メモを作成する
vim
のコマンドラインモードで :Memo hoge piyo
のような感じでコマンドを打つと、 ~/Documents/Memo/202009010702_hoge_piyo.md
のような感じの名前のファイルを開きます(それだけ)。
過去のメモを見る
:Memo
と引数を付けずにコマンドを実行すると、メモの保存フォルダを開いて、過去の記事を参照できるようにします。
メモを検索する
:MSearch argument
というコマンドで、文字列 argument
を含むメモの検索ができます。
実際には vimgrep をしているだけですので、引数には正規表現を指定することもできます。
Discussion