vimでメモ取る環境整備
ふと,突発ミーテの時とかにさらっとメモを用意できる環境が欲しいなと思いました. いちいちcdしてvim file名とかめんどくさいもんね.
ということで,shellscriptの練習がてらメモ取る環境を作ってみたよ.
作りたいイメージ
こんな感じにできるといいなー,っていうイメージ
- markdownでかける
- terminalからコマンド一発で編集画面にとぶ
- ファイル名は"memo_現在日時.md".
- 引数ある場合はそれがそのままタイトル
- 既に存在する場合はそのファイルを開く
- dropboxで共有
- 作成日時,更新日時をfile内に埋め込む
- 自作テンプレートの利用ができる
- できればリアルタイムプレビューとかもほしい
というかんじでいきます.stepは大きく二つで,
- vimでのmarkdown環境整備
- terminalでのコマンド作成
となります.それじゃいってみましょう.
vimでのmarkdown環境整える
vim markdownとかでぐぐると大量に参考記事がでてきます. ちょこちょこ見ていきましょう.
シンタックスハイライト
neobundleつかってmarkdown-vimをいれました.
参考:vimでmarkdown
リアルタイムプレビュー
chromeにmarkdown preview plusをいれました. これで.mdファイルをブラウザで開けます. .mdファイルを更新するたびにブラウザ上の出力アップデートされます.
参考:vimでmarkdown
terminalからchromeひらけるように
openコマンドが便利です.chromeのpathを指定してやれば起動できます. てことでaliasつくっておきました.
alias chrome="open -a /Applications/Google\ Chrome.app"
autodate導入
保存時の更新日時を入れてくれるプラグイン.べんり.テンプレートつくってその一番上とかに
Last Change: .
って書いとけばok.
参考:autodate.vim : ファイルのタイムスタンプ記述を自動的に更新
memoコマンドをつくる
以上でvimでmarkdownを書く環境+αは整ったといえるでしょう.
今度は先に挙げた要件を満たすようなmemoコマンドをshellscriptで書いてみます.
makememo.sh (~/programming/shellscript/以下においときます)
function makeMemo(){ #引数一つだったらそれをタイトルに.なければ日時をタイトルに if test $# -eq 1 then fileName=$1.md else fileName=memo_`date +%y%m%d`.md fi folderPath=~/Dropbox/memo/ #対象ファイルの存在確認 if [ -f $folderPath$fileName ] then #なにもしない echo "open file" else #テンプレートをリネーム echo "make file" cp $folderPath'memoTemplate.md' $folderPath$fileName #テンプレートの書き換え sed -i".bak" -e "s/createtime/`date +%Y_%m_%d_%T`/" $folderPath$fileName sed -i".bak" -e "s/memoTitle/$fileName/" $folderPath$fileName mv $folderPath$fileName.bak $folderPath/.bak fi #該当ファイルを開く vim $folderPath$fileName }
.zshrc
source "~/programming/shellscript/makememo.sh" alias memo="makeMemo"
できたー.
memo
と打つとその日の日付を含む.mdが,memo hoge
と打つとhoge.mdがdropboxのmemoフォルダ以下に保存されていきます.
思考のちょっとした整理用なので,フォルダ分けとかも特になし.blog記事書くときの思いつきメモとかに使っていこうと思ってます.
ただねー,昔のメモを読みたいときにファイル名わかんないとopenできない,むしろ新しいの作っちゃうのが頂けないですねー.時間あるときに,shellscriptでのoptionの使い方とか勉強してもうちょっと整理してみようかな.memo --list
でmemoディレクトリ内部表示とか,mamo --name hoge
で指定ファイルなければアラートとか.でもあんまりoptionつけても煩雑になってコマンド自体が面倒になるかもなぁ.
とりあえず感想
初めてのshellscriptなので結構勉強になった. ファイルの存在確認とか,sedによるファイル書き換えとか. 普段使わないので入門にはちょうど良い題材だった気がするかな. またちょこちょこオレオレコマンドつくってみようと思います.