キーカスタマイズ2020年版:その5 テンキー

 テンキーのキーの表記は、[Num 1]のように「Num」を付けることにします。[Num 1]と書いたらテンキー側の1のキー、[1]と書いたらフルキー側(文字キーなどがある方)の1のキーのことです。

テンキーにも[BackSpace]を 
※重要度★★★★★

キーボード図。テンキー、[Num +]を[BackSpace]にする等のカスタマイズ。

テンキー
  • [Num +] → [BackSpace]
  • [NumLock] → [Num +]

 [BackSpace]の項目で、「[BackSpace]の位置の改善はすべてのキーカスタマイズの中で最も重要」と書きました。テンキーにおいても[BackSpace]が押しやすいことはとても重要です。テンキーの入力でタイプミスすることももちろんあります。ミスタイプのたびにフルキー側の[BackSpace]を押しに行くようでは、テンキーの魅力半減です。

 そこで、テンキーの中でも大きくて押しやすいキーである[Num +]を[BackSpace]にします。これでテンキーの使い勝手が大幅に向上します。

 [Num +]は[NumLock]の位置に移動します。「+」は四則演算子の中では最もよく使うのでもう少し良い位置に置きたい感じもしますが、数字と比べると重要度ははるかに低い。移動するキーが少なくて済むことを優先します。

 [NumLock]は使わないので廃止します。

[Num 0]をモディファイヤにしてテンキーを多機能に 
※重要度★★★☆☆

  • [Num 0] → [Num 0 & Mod5]

 [Num 0]はテンキーで唯一の親指担当キーで、他のどのキーとも同時に押しやすい。[Num 0]をワンショットモディファイヤにすることで、テンキーでできる機能を大幅に増やすことができます。

 ただし、この方法は問題がないこともありません。[Num 0]をワンショットモディファイヤにすると、[Num 0]を押したまま他のキーを押した場合にモディファイヤの誤入力になってしまうのです。例えば――「01」と入力しようとして[Num 0] [Num 1]と素早く押すと、しばしば[Num 0]を離す前に[Num 1]を押してしまって[Mod5] + [Num 1]の入力になってしまう――という事態が生じます。

 というわけで、この設定を使う場合は、[Num 0]の入力の際に注意が必要です。これが煩わしいと感じる方は、この設定は向かないでしょう。自分としては、数字を間違いなく入力しようとすればおのずと1キーずつ確実な打鍵をするので誤入力になることはない。テンキーが多機能になるメリットの方が大きいと思います。*1 

テンキーカーソル 
※重要度★★★☆☆

キーボード図。[Num 0]を押した場合のテンキー図。

[Num 0]を押下した場合のテンキー
  • [Num 0] + [Num 8] → [↑]
  • [Num 0] + [Num 5] → [↓]
  • [Num 0] + [Num 4] → [←]
  • [Num 0] + [Num 6] → [→]

 まずは矢印キーを設定します。数字を入力しているときでも、カーソル移動をしたいことは多いです。

 もともとのテンキーの機能として、NumLockを外しテンキーを矢印キーとして使うこともできますが、「[NumLock]を押す→カーソル移動する→[NumLock]を押す」という操作はとても面倒です。[Shift] + [テンキー]でもカーソル移動はできますが、テンキーに[Shift]はないので、この設定の方が楽に使えます。

 それに、[↓]として使うキーは、[Num 2]より[Num 5]の方が使いやすいと思います。

テンキー編集キー 
※重要度★★☆☆☆

  • [Num 0] + [Num 7] → [Home]
  • [Num 0] + [Num 1] → [End]
  • [Num 0] + [Num 9] → [PageUp]
  • [Num 0] + [Num 3] → [PageDown]

 カーソルをジャンプさせるキーもあった方が良い。これはNumLockを外したときと同じ配置にします。ちょうどキートップに印刷されているし。

テンキー機能キー 
※重要度★★☆☆☆

  • [Num 0] + [BackSpace](元[Num +]) → [Delete]
  • [Num 0] + [Num -] → [Tab]

 数字の入力をする際によく使う機能を配置します。入力を修正するときは[Delete]はよく使います。[Tab]は『Excel』で右のセルに移動したり、入力フォームで次の入力欄にフォーカスを移すなどに使います。 

テンキー記号入力 
※重要度★★☆☆☆

  • [Num 0] + [Num 2] → 「:」
  • [Num 0] + [Num .] → 「,」
  • [Num 0] + [Num +](元[NumLock]) → 「¥」
  • [Num 0] + [Num /] → 「(」
  • [Num 0] + [Num *] → 「)」
  • [Num 0] + [Num Enter] → 「 」(半角スペース)

 「,」「¥」「:」「(」「)」「 」(半角スペース)の記号類6種をテンキーで入力できるようにします。数字と共によく使う記号なのでテンキーの使い勝手が良くなります。

 ところで、『ATOK』には「テンキーからの入力を必ず半角にする」「確定文字で入力する」という機能があります。これはテンキーの威力を倍増させる便利な機能です*2。しかし、本来のテンキーの入力は半角確定文字で入力できても、「テンキー記号入力」の入力は全角になるというのでは台無しです。

 そこで、テンキー記号入力は「IMEがOFFだったらそのまま入力。IMEがONだったら、IME OFFにして、入力して、IME ONにする」という動作をします*3。これで、テンキーからの入力は数字でも記号でも必ず半角確定文字で揃えることができます。

『のどか』設定ファイル

# 【テンキー】

# ◆単打側					●元のキー		●変更後のキー
def subst *NumPlusSign		= *BackSpace	# [Num +]		[BackSpace]
def subst ~M2-*NumLock		= *NumPlusSign	# [NumLock]		[Num +]

# ◆[Num0]を押しながら(文字は半角確定文字)	●元のキー		●変更後のキー
mod Mod5			+= !!Num0	# [Num 0]		[Num0 & Mod5]
key R-*Num0			= &Ignore
key M5-*Num9			= *PageUp	# [Num 0] + [Num 9]	[PageUp]
key M5-*Num8			= *↑		# [Num 0] + [Num 8]	[↑]
key M5-*Num7			= *Home		# [Num 0] + [Num 7]	[Home]
key M5-*Num6			= *→		# [Num 0] + [Num 6]	[→]
key M5-*Num5			= *↓		# [Num 0] + [Num 5]	[↓]
key M5-*Num4			= *←		# [Num 0] + [Num 4]	[←]
key M5-*Num3			= *PageDown	# [Num 0] + [Num 3]	[PageDown]
key ~IL-M5-*Num2		= ~S-*Colon	# [Num 0] + [Num 2]	「:」
key IL-M5-*Num2			= &SetImeStatus(off) &Wait(5) ~S-*Colon &Sync &SetImeStatus(on)
key M5-*Num1			= *End		# [Num 0] + [Num 1]	[End]
key ~IL-M5-*NumFullStop		= ~S-*Comma	# [Num 0] + [Num .]	「,」
key IL-M5-*NumFullStop		= &SetImeStatus(off) &Wait(5) ~S-*Comma &Sync &SetImeStatus(on)
key ~IL-M5-*NumPlusSign		= ~S-YenSign	# [Num 0] + 元[NumLock]	「\」
key IL-M5-*NumPlusSign		= &SetImeStatus(off) &Wait(5) ~S-YenSign &Sync &SetImeStatus(on)
key ~IL-M5-*NumSolidus		= S-*_8		# [Num 0] + [Num /]	「(」
key IL-M5-*NumSolidus		= &SetImeStatus(off) &Wait(5) S-*_8 &Sync &SetImeStatus(on)
key ~IL-M5-*NumAsterisk		= S-*_9		# [Num 0] + [Num *]	「)」
key IL-M5-*NumAsterisk		= &SetImeStatus(off) &Wait(5) S-*_9 &Sync &SetImeStatus(on)
key M5-*NumHyphenMinus		= *Tab		# [Num 0] + [Num -]	[Tab]
key M5-*BackSpace		= *Delete	# [Num 0] + 元[Num +]	[Delete]
key ~IL-M5-*NumEnter		= Space		# [Num 0] + [Num Enter]	「 」(半角スペース)
key IL-M5-*NumEnter		= &SetImeStatus(off) &Wait(5) Space &Sync &SetImeStatus(on)

# ◆IMEオンでも確定文字で入力する ※『ATOK』ならIMEの機能でできるので必要ない
# key IL-~M5-*Num9		= &SetImeStatus(off) &Wait(5) *Num9		&Sync &SetImeStatus(on)
# key IL-~M5-*Num8		= &SetImeStatus(off) &Wait(5) *Num8		&Sync &SetImeStatus(on)
# key IL-~M5-*Num7		= &SetImeStatus(off) &Wait(5) *Num7		&Sync &SetImeStatus(on)
# key IL-~M5-*Num6		= &SetImeStatus(off) &Wait(5) *Num6		&Sync &SetImeStatus(on)
# key IL-~M5-*Num5		= &SetImeStatus(off) &Wait(5) *Num5		&Sync &SetImeStatus(on)
# key IL-~M5-*Num4		= &SetImeStatus(off) &Wait(5) *Num4		&Sync &SetImeStatus(on)
# key IL-~M5-*Num3		= &SetImeStatus(off) &Wait(5) *Num3		&Sync &SetImeStatus(on)
# key IL-~M5-*Num2		= &SetImeStatus(off) &Wait(5) *Num2		&Sync &SetImeStatus(on)
# key IL-~M5-*Num1		= &SetImeStatus(off) &Wait(5) *Num1		&Sync &SetImeStatus(on)
# key IL-~M5-*Num0		= &SetImeStatus(off) &Wait(5) *Num0		&Sync &SetImeStatus(on)
# key IL-~M5-*NumFullStop	= &SetImeStatus(off) &Wait(5) *NumFullStop	&Sync &SetImeStatus(on)
# key IL-~M5-*NumSolidus	= &SetImeStatus(off) &Wait(5) *NumSolidus	&Sync &SetImeStatus(on)
# key IL-~M5-*NumAsterisk	= &SetImeStatus(off) &Wait(5) *NumAsterisk	&Sync &SetImeStatus(on)
# key IL-~M5-*NumHyphenMinus	= &SetImeStatus(off) &Wait(5) *NumHyphenMinus	&Sync &SetImeStatus(on)
# key IL-~M5-*NumPlus		= &SetImeStatus(off) &Wait(5) *NumPlus		&Sync &SetImeStatus(on)

【キーカスタマイズ2020年版 目次】

*1:なお、[スペース]と親指[Enter]をワンショットモディファイヤにするのも同様の問題が発生する可能性があります。しかし、少なくとも日本語入力の場合は、[スペース]や[Enter]を押した直後に文字キーを押すという操作はほとんどないので、問題になることはまずありません。英文タイプの[スペース]の入力は問題になる可能性があります。その場合は、[スペース] + [F9]でスペースのモディファイヤを無効にします。

*2:Google 日本語入力』にも同様の機能があります。『Microsoft IME』は半角で入力する機能はありますが、確定文字で入力することはできません。

*3:『のどか』には、IMEの状態を表わすモディファイヤIL-があるので、これを利用してIME ONの場合とIME OFFの場合を別々の設定を書く事で実現します。