【Python】2022年 = 令和4年 = 平成34年 = 昭和97年 というような 西暦 - 元号 対照表

役所関連の書類とか整理していると、

平成とか昭和の書類がでてきて、

何年前の書類なのか、

時系列が全くわからん。

いちいちネットで調べるのだるいので。

Python の訓練です。

 

■ 確認

変換の基準を確認する。


昭和 S01.12.25 (1926-12-25) - S64.01.07 (1989-01-07)
平成 H01.01.08 (1989-01-08) - H31.04.30 (2019-04-30)
令和 R01.05.01 (2019-05-01) -

👉 元号 - Wikipedia hatena-bookmark

 

■ コード

対照表がほしい。


#!/usr/bin/env python

import datetime
from tabulate import tabulate

d = []

for a in range(1989, datetime.date.today().year + 1)[::-1]:

  r = a - 2018
  h = a - 1988
  s = a - 1925

  d.append([a, r if r > 0 else '', f'({h})' if r > 1 else h, f'({s})' if h > 1 else s])

print(tabulate(d, headers=('ad', 'reiwa', 'heisei', 'showa'), stralign='right'))

「元」とかは無視。

 

■ まとめ

中国、朝鮮、台湾、日本、ベトナムくらいですか。

微妙です。

👉 日本は役所や企業での元号の使用をやめるべきだと思いますか? - Quora hatena-bookmark


【macOS】キーマップとキーボードショートカットの変更設定

最近では、macOS ユーザーは、いくつもの重なって設定されたショートカット機能を「ほぼ無意識」にキーボードから操作することになっています。

当然、衝突したり、意図しない機能が発動されることも多くなります。

まずは、設定箇所をはっきり把握しておきたいです。

 

■ OS 設定 キーボードショートカット「修飾キー」

修飾キー (Modifier Keys) の、それぞれの機能を入れ替えたり、無効化することができます。


System Settings

  ↓

Keyboard

  ↓

Keyboard Shortcuts…

  ↓

Modifier Keys

👉 Macで修飾キーの動作を変更する - Apple サポート (日本) hatena-bookmark

 

■ キーマップ変更アプリ

修飾キー を含めたいろいろなショートカットを作成できます。⌘(command)⇧(shift) キーの左右個別の機能振り分けやカーソルキー、Fn キーなど細かく設定できるサードパーティのアプリです。

有名な2つを挙げておきます。ソースコードはともに GitHub で公開されています。無料です。

👉 Karabiner-Elements hatena-bookmark

👉 ⌘英かな hatena-bookmark

私は、⌘英かな を利用して、英数 ↔ かな の切り替えと カーソルキー のショートカット作成で使用しています。

👉 【macOS】IDE で 矢印 (カーソルキー) を使うと キーボード ホームポジション がずれる件 hatena-bookmark

 

■ OS 設定 キーボードショートカット「アプリショートカット」

OSの設定からアプリごとにショートカットを設定できます。


System Settings

  ↓

Keyboard

  ↓

Keyboard Shortcuts…

  ↓

App Shortcuts

  ↓

All Applications


👉 Mac のキーボードショートカット - Apple サポート (日本) hatena-bookmark

ショートカットに振り分ける機能の名称に関しては、スペースや大文字小文字などきちんと入力する必要があります。そこが面倒です。機能 - 名称 の一覧とかどこかにないでしょうかね。

👉 【macOS】キーボードショートカットの変更は言語設定別でイヤだ!! hatena-bookmark

 

■ 各アプリの設定

ブラウザ や エディタ、IDE など、インストールしたアプリ内の設定からもショートカットの設定ができます。

以下、Android Studio のデフォルトのショートカット。


👉 キーボード ショートカット  |  Android デベロッパー  |  Android Developers hatena-bookmark

Android Studio では、設定から、個別にショートカットの変更ができますが、それらの詰め合わせとなったIDEAプラグインをインストールしてまとめて変更することもできます。

👉 IdeaVim - IntelliJ IDEs Plugin | Marketplace hatena-bookmark
👉 VSCode Keymap - IntelliJ IDEs Plugin | Marketplace hatena-bookmark
👉 macOS For All - IntelliJ IDEs Plugin | Marketplace hatena-bookmark
👉 Emacs Keymap - IntelliJ IDEs Plugin | Marketplace hatena-bookmark

以下、Chrome のデフォルトのショートカット。

👉 Chrome のキーボード ショートカット - パソコン - Google Chrome ヘルプ hatena-bookmark

Chrome では、設定 - エクステンション - ショートカット


chrome://extensions/shortcuts

から、個別のアプリに対してのショートカットを変更できますが、これも以下のような Chrome エクステンションをインストールすると設定しやすいです。

👉 AutoControl: Keyboard shortcut, Mouse gesture - Chrome Web Store hatena-bookmark
👉 Shortkeys (Custom Keyboard Shortcuts) - Chrome Web Store hatena-bookmark
👉 Disable keyboard shortcuts - Chrome Web Store hatena-bookmark

 

■ まとめ

不必要にショートカットをカスタムするのはやめたほうが良さげ。

最小限のカスタムで今の段階でメモ。


1. os settings keyboard modifier keys

  caps lock → control


2. ⌘英かな (os app)

  left command → 英数
  right command → かな
  control + p → arrow up
  control + n → arrow down
  control + f → arrow right
  control + b → arrow left


3. os settings keyboard app shortcuts

  command + v → Paste and Match Style
  shift + command + v → Paste

  ※ Notes.app 向けに paste 2つを入れ替える。


4. app settings

  - Android Studio
    Settings… - Keymap
    → macOS のままにする

  - Chrome
    disable shortcut (chrome extension)
      command + p → Do nothing
      command + d → Do nothing
      command + s → Do nothing

    ※ 英かな切り替え直後の意図しない動作を防ぐ。

指がホームポジションから離れることがずっと気になっていました。

キーマップを自由にカスタマイズできる ⌘英かなKarabiner-Elements を使うことで カーソルキーを使った範囲選択が shift + control + p/n/f/b でできるようになったことで IDEA/Android Studio 上でエディタの Keymap を デフォルトである macOS のまま利用できるようになったことがうれしい。

衝突の警告が多少出ているが、追って調整していけば問題ないでしょう。



【macOS】キーボードショートカットの変更は言語設定別でイヤだ!!

言語設定を「English」最優先で、

「Paste」系のキーボードショートカットを入れ替えていましたが。

ここで、言語設定を「日本語」最優先に変えると変更したショートカットは効かなくなりますね!

 

■ English ↔ 日本語 ショートカット対応一覧

言語の設定を変えると、OS再起動になるのでショートカット名を確認がするのが面倒。

リソースファイルを探すがこれもまた Ventura でどこにあるのか分からず。

👉 macOS Venturaからの新しい“Settings”表記と、旧“Preferences”表記からの移行 hatena-bookmark

とりあえず、メインメニューに関してはそれらしき一覧が以下。


❯ curl -s https://raw.githubusercontent.com/martnst/localize-mainmenu/master/languages/ja.json | \
jq -r '. | to_entries[] | [.key, .value] | @csv' | column -t -s,

"About <AppName>"                  "<AppName>について"
"Bring <AppName> Window to Front"
"Bring All to Front"               "すべてを手前に移動"
"Capitalize"                       "語頭を大文字にする"
"Check Document Now"               "書類を今すぐチェック"
"Check Grammar With Spelling"      "スペルと一緒に文法をチェック"
"Check Spelling While Typing"      "入力中にスペルチェック"
"Close"                            "閉じる"
"Copy"                             "コピー"
"Correct Spelling Automatically"   "スペルを自動的に修正"
"Cut"                              "カット"
"Delete"                           "削除"
"Edit"                             "編集"
"File"                             "ファイル"
"Find"                             "検索"
"Find Next"                        "次を検索"
"Find Previous"                    "前を検索"
"Find and Replace…"                "検索と置換..."
"Find…"                            "検索..."
"Help"                             "ヘルプ"
"Hide <AppName>"                   "<AppName>を隠す"
"Hide Others"                      "ほかを隠す"
"Jump to Selection"                "選択部分へジャンプ"
"Make Lower Case"                  "小文字にする"
"Make Upper Case"                  "大文字にする"
"Minimize"                         "しまう"
"Open…"                            "開く..."
"Paste"                            "ペースト"
"Paste and Match Style"            "ペーストしてスタイルを合わせる"
"Preferences…"                     "環境設定..."
"Quit <AppName>"                   "<AppName>を終了"
"Redo"                             "やり直す"
"Select All"                       "すべてを選択"
"Services"                         "サービス"
"Show All"                         "すべてを表示"
"Show Spelling and Grammar"        "スペルと文法を表示"
"Show Substitutions"               "自動置換を表示"
"Smart Copy/Paste"                 "スマートコピー/ペースト"
"Smart Dashes"                     "スマートダッシュ記号"
"Smart Links"                      "スマートリンク"
"Smart Quotes"                     "スマート引用符"
"Speech"                           "スピーチ"
"Spelling"                         "スペル"
"Spelling and Grammar"             "スペルと文法"
"Start Speaking"                   "読み上げを開始"
"Stop Speaking"                    "読み上げを停止"
"Substitutions"                    "自動置換"
"Text Replacement"                 "テキストの置き換え"
"Transformations"                  "変換"
"Undo"                             "取り消す"
"Use Selection for Find"           "選択部分を検索に使用"
"Use Selection for Replace"
"Window"                           "ウインドウ"
"Zoom"                             "拡大/縮小"

👉 martnst/localize-mainmenu: Commandline tool that localizes the common main menu items of an OS X app automatically. hatena-bookmark
👉 App Language Chooser im Mac App Store hatena-bookmark

こんな設定仕様はイヤです。