All we need is memo
メモ。
人によっては魔力がなんちゃらとかいいますが、お仕事をする上で至極大事な習慣だと思います。
しかしどうやってそのメモを「取る」「保存する」「後から参照する」のか?
適当な方法では、結局ゴミ溜めのような何かが出来上がってしまい、重要な情報が地下深く埋められていってしまうでしょう・・・。
一貫していて、かつ生産性のある手法が必要になります。
しかし、こういった生産性に関するトピックは、エンジニアにとって簡単に解決できることではないです。
某rebuild.fmに出現する方々のように、詰めすぎて完全に目的と手段が逆転する(手段構築のためにかけた時間が、どう見てもpayしていない)ことは、ままあるのではないかと思います。
こだわりたいのです。0.5秒削減することで全能感を得たいのです。。。
残念なニュースですが、我々人間の時間は有限です。
特に自分のようなまだまだ駆け出しのエンジニアは、時間の使い方には最新の注意を払わなければなりません。
間違ってもmacosの開発環境構築をコマンド一発でできるように週末をまるまるつぶしたり、いけてるascii artを要所で打ち出すのためにwebサービスを吟味するなどあってはならないのです・・・(戒め
「生産性高くメモを取ることはできないか?」
これは自分の長年の課題でした。
解決することを決心しました。
解決するために、まず問題を以下に細分化しました:
- メモとして文章を書く手段
- 書いたメモを保存/管理する手段
- 過去のメモを検索/参照する手段
Oh yes, we want to write memos with vim
課題の1番は解決するまでもありません。解決方法は自明です。
vimで書けば良いのです。
「メモを取る」「文章を書く」といった時、全てのエンジニアはvimでそれを達成したいはずです。
他に手段などないはずです。
vimはあらゆるモノカキ効率化の手段を提供してくれます:
- Normal/Insertモードの各種キーバインドによる高速かつ効率的な編集
- Visualモードによる効率的な編集
- 的確なシンタックスハイライト
- 気軽なwindow分割 (ソースコードを横に置くとか、同じファイルでも違う箇所を並べるとか)
はい、課題の1番は解決しました。
残るはメモを「保存/管理する手段」と「検索/参照する手段」です。
「It's time, Doctor Vim plugin.」 「オーケイ」
前置き長くなりましたが、本題です。ドクター○須の力も借りつつ進めていきます。
「メモの保存と管理(一瞬で、どこかに迷惑かけることなく)」と、「それらのメモを検索/参照する方法」を行う手段を得るため、ちっちゃいプラグインを作りました。 (すいません作成自体は数年前です)
使い方は至ってシンプルです。
使い方
メモを作成する
メモを作成します。
このプラグインは特定のフォルダ内にメモを作成/保存します。 (指定のファイルパスにeditコマンドを流すだけです)
作成できるメモは3種類あり、それぞれよきように保存の面倒を見てくれます。
" Create new note. Will be prompted to input file name.
" Path can contain `/` to create file under directories.
:call QuickNotesNew()
" Create new note named with current date
:call QuickNotesNewDiary()
" Create new note with git's `[repository name]/[branch name]`
" Needs tpope/vim-fugitive
:call QuickNotesNewGitBranch()
個人的にはgitのrepositoryとbranchを元に作成してくれる3点目が誠に便利だと思っています。
Todoを書き出したり、MRで共有したい情報を忘れないためにメモしておいたり。
メモを検索/参照する
作成されたメモを検索/参照します。
一応filerとfzfの両方を手段として用意していますが、圧倒的にfzfの方が使いやすいです。
" Open notes directory.
:call QuickNotesLsNotes()
" Open diaries directory.
:call QuickNotesLsDiary()
" Open notes in fzf.
" Needs fzf and fzf.vim
:call QuickNotesFzf()
縁もたけなわ
非常にざっくりですが、自分の課題を解決するために作成したvim pluginの紹介でした。
「こうしたらもっといいよ」「こういう機能あるといいんじゃない」などのご意見はいただけるとすごく喜びます。
読んでいただきありがとうございました!
CrowdLog is hiring!
自分の所属する、CrowdLogチームでは、一緒に事業の成長に熱くコミットしてくれる仲間を募集しています!
(個人的にはvimを熱く語る仲間も募集しています。たぶんいまのところvimmerは僕一人です)