現在日時や生まれてから今日までの日数を挿入する Sublime Text 用のちびプラグイン
Sublime Text で、現在日時を簡単に挿入したい。 既存のプラグインもあるけど、自分好みにしたかったので書いてみた。
- 現在日時
- 生まれてから今日までの日数
を挿入するコードを書いて、ショートカット登録するところまでの手順を残す。
現在日時を表示するSublime Text プラグインを書く
Sublime TextのPlugInは Python で書く。
ツール > 開発 > プラグイン追加 をクリックすると、 次のようなサンプルコードが入った新規ファイルが開く。
※メニューは Japanise プラグインで日本語化しています。
import sublime import sublime_plugin class ExampleCommand(sublime_plugin.TextCommand): def run(self, edit): self.view.insert(edit, 0, "Hello, World!")
自分のやりたい処理に書き換える。 処理単位でclassを追加して、rumメソッド内に処理を書く。
- import sublime, sublime_plugin:おまじない
- class名:
- 「ほにゃららCommand」という名にする。
- ほにゃらら部分は、アッパースネークケース(パスカルケース)で書く。 後述の通り、ショートカット登録する時にこの名前が使われる
- runメソッド:
- 処理を書く
リファレンスはここ
API Reference – Sublime Text 3 Documentation
生まれてから今日までの日数と今日の日付を「D12345 on 2019-03-16 (Sat) 」の書式で挿入する処理
from datetime import datetime, timedelta, date import sublime import sublime_plugin class AddTheDayCommand(sublime_plugin.TextCommand): def run(self, edit): """ 生まれてから今日までの日数を返す Dxxxxxx on YYYY-MM-DD (weekday) """ BIRTHDAY = date(19**, 3, 18) # 自分の誕生日 the_days = (date.today() - BIRTHDAY + timedelta(days=1)).days d = date.today().strftime("%Y-%m-%d (%a) ") self.view.run_command("insert_snippet", { "contents": "%s" % "D" + str(the_days) + " on " + d } )
今日の日時を挿入する処理
class AddDateTimeCommand(sublime_plugin.TextCommand): def run(self, edit): self.view.run_command("insert_snippet", { "contents": "%s" % datetime.now().strftime("%Y-%m-%d (%a) %H:%M:%S") } )
ファイルを保存する。
MacOSなら
~/Library/Application\ Support/Sublime\ Text\ 3/Packages/User
配下に、add_date.py のように適当なファイル名をつけて保存する。
GitHubにもあげといた。
GitHub - acokikoy/sublimetext_snipetts: snipetts, small plugins of Sublime Text 3
ショートカット登録して簡単に挿入できるようにする
キーの組み合わせは、Excelで日時を挿入するショートカットに近いものにした。
基本設定 > キーバインド でショートカットの設定ファイルが開くので、 「Default (OSX).sublime-keymap」の方に、次を追記する。
// add datetime, {"keys": ["ctrl+;"], "command": "add_date_time" }, {"keys": ["ctrl+shift+;"], "command": "add_the_day" },
"command"の値は、class名が「AddTheDayCommand」なら「add_the_day」のように、アッパーキャメルケースをスネークケースに読み替えて 末尾のCommandは省くルールになる模様。
設定ファイルを保存すると、以降
- 「Ctrl + ;」で現在日時、
- 「Ctrl + Shift + ;」で Dxxxx (生まれてからの日数)
が挿入されるようになる。
参考にさせてもらった記事、リファレンスなど
- sublimetext2 - Can i add date time for sublime snippet? - Stack Overflow
Pythonのdatetimeで日付や時間と文字列を変換(strftime, strptime) | note.nkmk.me
- 既存のプラグインもある。日時を入れるだけならこっちが手っ取り早い。
InsertDate - Packages - Package Control - Excelのショートカット
セルに現在の日付と時刻を入力する - Office サポート
以上