コミュ障だから明日が僕らをよんだって返事もろくにしなかった

何かを創る人に憧れたからブログをはじめたんだと思うよ

きっと何者にもなれない僕だから

久しぶりに月曜判定

そんなことよりもきいてください

まずカレンダー見るわけです。日付が変わってるわけですね。
曜日も変わってるわけですよ。今日は何曜日か見るわけですね。
月曜なわけですよ。いやいや、そんなわけないでしょうと思ってもう一度、曜日を確認するわけですね。
それでも月曜日なわけですよ。こわいですね~。

久しぶりにVimを触ります

くだらない茶番はさておき、Vimというテキストエディタの話でもします。というかこの茶番昔もやった気がする……


久しぶりにVimを触ったらVim Scriptという何だか面白そうなものがあることを知ってしまったのでいじっていきます。まあ、大したことやらないんですけどね。いざ触ってみたら情報の少なさに苦労しますね。

とりあえずここを参考に月曜日を判定するいつものくだらないやつ作りました。
http://vim-jp.org/vimdoc-ja/usr_41.html

このままガリガリとスクリプトを書いていってもいいのですが、まずはVim Scriptについてを……

Vim Script
Vim script は Vim に組み込まれたスクリプト言語である。Vim の源流である vi の ex コマンドをもとに、 Vim の初期のバージョンでは制御フローや関数定義のためのコマンドが追加された。バージョン 7 からは、 Vim script はリストや連想配列といったより高度なデータ型や(シンプルなかたちの)オブジェクト指向プログラミングもサポートしている。map() や filter() といった組み込み関数によって基本的な関数型プログラミングも可能であるが、Vim script には無名関数は存在せず、Vim script はもっぱら命令型のスタイルで書かれている。

というわけで、Vimで使えるスクリプト(簡易プログラム)です。
Vimには「:」を入力することで実行できるコマンドモードというものがあります。exコマンドというものが使えるように割り当てられているそうです。これを使ってガリガリとScriptを書くと実行できるというわけですね。
ちなみにこのコマンドモード、スクリプトを書くだけでなくファイルの保存などにも使うので割りと頻繁に使う機会のあるモードです。

コマンド 説明
:w 保存
:w! 強制的に保存
:w ファイル名 名前をつけて保存
:q 終了
:q! 強制的に終了

といった感じとなります。


話がそれましたが、Vim Scriptを触っていきましょう。
できました。

if ( strftime("%a") == "月" )
  echo "月曜です"
else
  echo "それ以外の日です"
endif


作ってとりあえず実行してみたい場合は:source ファイル名でいけるらしいですよ。これで現在日の曜日を取得して、「月曜です」と表示してくれるっぽいです。思いつき実装が先なので、リファレンスを読まない僕の悪い癖がでてますね。

strftimeの仕様は以下の様な感じらしいですよ

strftime({format}[, {time}]) 文字列 指定されたフォーマットでの時刻

ちなみにヘルプ:help strftimeで細かい仕様が確認できるけど当然のように英語なので備えよう(?)