Yasnnipetで日付をささっと表示して日記を付けたい
スポンサーリンク
モチベーション
Emacsでよく日記のようなログを書くことがあります。今日あった出来事とか、 今日見つけたものとか。 そうゆうとき、日付をショートカットで入力できると便利です。それまでは、google日本語入力で、わざわざ「きょう」と入力して変換で「2015/03/04」という文字を打ってましたから。面倒です。
Yasnnipet使って、例えば「d」と入力するだけで日付を挿入できるようにしましょう。
方法
format-time-string
というElisp標準の関数を使います。
一般のRubyやjavascriptがサポートしているように、あるフォーマットに従って日付の文字列を入れてくれます。
補足
M-x describe-function
を実行してformat-time-string
を入力すれば説明が出てきます。M-x lisp-interaction-mode
でバッファのモードをlisp解釈できるモードに変更できます。その後、
(format-time-string "%Y-%m-%d")
など入力してから、C-j
とうってリターンすると、関数(ここではformat-time-string)
の実行結果が出力されます。手軽に関数を実行でき、覚えておくと便利です。
format-time-string
とは
format-time-string
の主な使い方ですが、以下の文字列がそれぞれ年月日や時間に対応しています。基本的には、shellのdateとかでも変わらないですね。
文字列 | 出力結果 |
---|---|
%Y | 年 |
%m | 月 |
%d | 日 |
%w | 曜日 |
%H | 時 |
%M | 分 |
%S | 秒 |
%N | ナノ秒 |
使い方の例です。
(format-time-string "%Y-%m-%d %H:%M:%S.%N")
とすれば、"2015-03-04 22:42:56.844025000"
という結果が出てきます。
補足
曜日ですが、%w
だと日曜が0で0~6、%u
だと月曜が1で曜日ごとに1~7の数字が出力されます。
yasnippetに設定する
- yasnippetを使いたいモードでファイルを開く(例えば、.mdのファイルなど)
M-x yas-new-snippet
で新しい設定ファイルの作成画面を開く
設定ファイルは例えば以下のように記述。以下では、"%Y-%m-%d"
というフォーマットを使っているので、今の日付が挿入される。(ISO 8601 date format
という形式らしい。)
# -*- mode: snippet; require-final-newline: nil -*- # name: currentdate # key: d # -- # `(insert (format-time-string "%Y-%m-%d"))` $0
設定を書いたら、いつもどおりC-c C-c
で設定を完了する。ファイルの編集バッファに戻ったら、早速d
を押してTAB等でyas-expand
してみましょう。
# 2015-03-04
というように今日の日付が出力されましたでしょうか?
Yasnippetについては、こちらの記事も参考にどうぞ。
Emacsテクニックバイブル ?作業効率をカイゼンする200の技?
- 作者: るびきち
- 出版社/メーカー: 技術評論社
- 発売日: 2010/08/03
- メディア: 単行本(ソフトカバー)
- 購入: 27人 クリック: 1,039回
- この商品を含むブログ (68件) を見る