最近、コードを打つことが多くなり、
カーソルキーやHOME, ENDキーに手を伸ばしてホームポジションを崩す事が地味に辛くなってきました。
Macでは、コマンドとCtrl両方あるせいか、ショートカットキーが充実しているようですが、私の使っているWindowsでは、カーソルキー等のショートカットキーはない様子……
と、ゆーことで、自分で作ることに。
その際、まず悩んだのが、カーソルキーの場所。
vi系, Google系だと
- H:「←」
- J:「↓」
- K:「↑」
- l:「→」
だし、
日本語入力でも、
- Z + H : 「←」
- Z + J : 「↓」
- Z + K : 「↑」
- Z + L : 「→」
と出せますよね。
ちょっと脱線しますが、
- Z + . : 「…」(三点リーダ)
- Z + , : 「‥」(二点リーダ)
- Z + – : 「〜」(波線、波ダッシュ)
- Z + [ : 「『」(二重かぎかっこ)
- Z + ] : 「』」(二重閉じかぎかっこ)
です。
これがMacだと、
- cont + B : 「←」"Back"
- cont + N : 「↓」 "dowN"
- cont + P : 「↑」 "uP"
- cont + F : 「→」"Front"
なんですよね。
私は、矢印はHJKLの方が馴染みがあるんですが、それ以外はvimとか使っていないし、
できればこの機会にHOME, END, Del, Back等のショートカットも割り当てたい…
Macだと、
- Cont + H: Delete
- Cont + K: カーソルから行末までをカット
と、他のショートカットに割り当てられているので、バッティングしてしまう…
迷った挙げ句、とりあえず
- F13 + B or F13+ H : 「←」
- F13 + N or F13+ J : 「↓」
- F13 + P or F13+ K : 「↑」
- F13 + F or F13+ L : 「→」
と、両方assignしてみて、どちらが使いやすいか試してみることにしました。
・
・
・
と、前置きが長くなりましたが、ここからはソフトを使ってショートカットを割り当てる方法。
今回は、下記2つのソフトを使用することにしました。
- Change Key
- AutoHotkey
(ところが、結局Change Keyは私のPC環境ではうまく作動せず、結局レジストリから直接変更することになりました。折角色々調べたので、Change Keyの内容も記録しておきます。)
キーの配置を変更する
Change Keyを使う
Change Keyのインストール
窓の杜etc.からダウンロードして、任意の場所に解凍。
「Change Key」非常駐型でフリーのキー配置変更ソフト
……とココで、なぜかLZHが解凍できない、という問題発生。
どうやら、最近、Windows10に大規模なアップデート(Creators Update)が行われた事が原因のよう。
元々2010年頃から「lzh」形式の圧縮ファイルで、セキュリティ面での深刻な不具合が発見され、利用停止が呼びかけられていた。
で、今回のCreators Updateで、対応停止にした、という話のよう。
でも今回はlzhファイルを開く必要があるので、解凍アプリをインストールすることに。
使用したのは、「Lhaplus」(信用できるアプリ、という事なので。)
こちらも窓の杜からダウンロードし、
lzhにチェックを入れてインストール。
無事に、ChgKey15.LZHファイルを開く事ができた。
CapsLockキーをF13に変更
1. ChgKey.exeを管理者権限で実行 → 仮想キーボードが出てくる。
2. 変えたいキー=今回はCapsLockキーをクリック。
3. 「キーをどのキーに変更しますか?」というポップアップが出てくる。
4. F13は画面上にないので、右上にあるScan codeをクリックし、スキャンコードを直接入力。
5. 「F13」のスキャンコードは「0064」。
キー | 仮想キーコード(Vk) | スキャンコード(Sc) |
---|---|---|
F13 | 0x007C | 0x0064 |
F14 | 0x007D | 0x0065 |
F15 | 0x007E | 0x0066 |
F16 | 0x007F | 0x0067 |
F17 | 0x0080 | 0x0068 |
F18 | 0x0081 | 0x0069 |
F19 | 0x0082 | 0x006A |
F20 | 0x0083 | 0x006B |
F21 | 0x0084 | 0x006C |
F22 | 0x0085 | 0x006D |
F23 | 0x0086 | 0x006E |
F24n | 0x0087 | 0x0076 |
調査環境:Windows 10 64bit |
6. OKをクリックし、「CapsLock」を「F13」に変更。
- 基本、どのキーに変更してもよい。
- 他のショートカットキーと被らないように、今回はF13に変更した。
- 日本語配列のキーボードでは、変換/無変換キー等、使えるキーが多いが、私の場合は英語配列なので、その点だけちょっと不便……
7. Ctrl左をクリック→タブにある登録(R) → 「現在の設定内容で登録します(R)」をクリック。
(画面を閉じるだけではダメ。)
8. 再起動。
通常はこれでOK。
……けれど、私のPC環境では、なぜかうまくいかない……
調べてみると、半角/全角キーやCapsLockの場合、一旦HomeやEndなど、別のキーに割り当て → 再起動 してから、もう一度F13に割り当てる必要がある様子。
……再トライ……やっぱりダメ……
……米国版のKeyboardを使っていることが原因の可能性を指摘しているサイトも(ホント?)……
とゆーことで、結局
「zkxs/map_capslock_to_f13.reg 」を使わせてもらって、直接レジストリの変更を行った。
レジストリ設定を編集する
❏ レジストリキーの値を変更する方法1:直接入力
1. Windows + R (もしくはメニューの「ここに入力して検索」に「run」)で、「ファイル名を指定して実行」を呼び出す。
2. 「regedit」を指定。
3. レジストリエディタが起動される。
4. キー[HKEY_LOCAL_MACHINE]又は[HKEY_CURRENT_USER]を選択し、ツリービューを開く。
※HKEY_LOCAL_MACHINEの場合:HKEY_LOCAL_MACHINE > SYSTEM > CurrentControlSet > Control > Keyboard Layout
※HKEY_CURRENT_USERの場合:HKEY_CURRENT_USER > Keyboard Layout
5. 右クリック → 「New」→「Binary Value」→「New Value #1」の所に「Scancode Map」と名前を変更し、保存。
6. 作成したScancode Mapを開き、Value data欄に下記入力。
00000000 00 00 00 00 00 00 00 00
00000008 02 00 00 00 64 00 3A 00
00000010 00,00,00,00
※ 因みに、この16進コードの意味は、
00,00,00,00,00,00,00,00,02,00,00,00,64,00,3a,00,00,00,00,00
①先頭の00,00,00,00はヘッダ。バージョン番号を示す。全て0に設定する必要がある。
② 続く00,00,00,00もヘッダ。フラグを示す。ここもすべて0でOK。
③ その次の02,00,00,00はエントリー数を表す。ココでは2エントリー。(1d,00,3a,00と、00,00,00,00 (NULL終端) の2つという意味。)
④ その次の64,00,3a,00が肝心の、キーコードを変換する部分。
- Capsのコードは3a、左Ctrlキーのコードは1d。
- 1d,00,3a,00が、003aを001dに変更する、という意味になる
⑤ 最後の00,00,00,00は終端を表す。日本語の句点のような感じ。すべて0で。
7. 実行して再起動。
※ 設定を戻したい場合は、追加したキーを削除する。
HKEY_LOCAL_MACHINE > SYSTEM > CurrentControlSet > Control > Keyboard Layout
→ ”Scancode Map” → 右クリック → Delete
❏ レジストリキーの値を変更する方法2:REGファイルを作って実行
1. 空のテキストファイルを作り、下記入力。
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlKeyboard Layout]
“Scancode Map”=hex:00,00,00,00,00,00,00,00,03,00,00,00,1d,00,3a,00,3a,00,1d,00,00,00,00,00
※” Windows Registry Editor Version 5.00 “はファイルの先頭(1行目)にくるように
※” Windows Registry Editor Version 5.00 “の下には空行を入れておく
2. REGファイルにする。
2-1. まずは.txtファイルで保存。
2-2. そのファイルを選択肢、F2で.regにファイル形式を変更。
うまく保存できたら、.regのファイルができる。
2-3. REGファイルをダブルクリックして実行。
→ 色々壊れるかもしれないけど、本当にいいですか?みたいに聞いてくるので、「Yes」と答えて実行。
4. 再起動して反映。
……できた!
慣れれば、レジストリから変更するほうが楽かも。
AutoHotkeyでショートカットキーを割り当てる
AutoHotkeyのインストール
AutoHotkeyを下記からダウンロードし、インストール。
Free keyboard macro program. Supports hotkeys for keyboard, mouse, and joystick. Can expand abbreviations as you type them (AutoText).
ahkファイルの作成
1. ノートパッドなどのテキストファイルを作成し、拡張子:ahkファイル、文字コード:UTF-8にして保存。
※ 私は、使い勝手の良いテキストエディタを使用。使用しているのはVisual Studio Code ↓
Visual Studio Code is a code editor redefined and optimized for building and debugging modern web and cloud applications. Visual Studio Code is free and available on your favorite platform - Linux, macOS, and Windows.
※テキストエディタを使用する場合は、文字エンコードを「UTF-8 with BOM」で作成/保存する必要がある。(WindowsのワードパットUTF-8のテキストを作成した場合は、UTF-8で保存した時に自動的にBOMが追加される。)
BOM(バイトオーダーマーク)とは、Unicodeで記述された文書の冒頭に記載される短い符号で、使用されている文字符号化方式(文字エンコーディングの種類や、そのバイト順(エンディアン)を指定するためのもの。
右下にある表示がUTF-8になっていたら、そこをクリック → 「Save with Encoding」→ UTF-8 with BOMを選択 → 表示がUTF-8 with BOMに変更されていたらOK。
ちなみに、Visual Studio Codeのシンタックスハイライト機能は見た目的かなり便利(拡張機能インストールが必要)。
※Visual Studio Codeシンタックスハイライト拡張機能のインストール法 ↓
- 左側の拡張機能アイコンをクリック
- 検索ウインドウで「autohotkey」と検索
- 検索結果の一番上に出てくる「AutoHotkey 0.22」を選択し、「install」ボタンでインストール
2. 保存先は、どこでも良いけれど、私は他のPCでも使用したいので、Dropbox etc.のクラウドに保存し、スタートアップにショートカットを作成した。
(スタートアップに入れておけば、AutoHotKeyをマシン起動時に常駐させることができる。)
2-1. まず、AutoHotKeyを停止させ、Windows10のスタートアップフォルダを開く。
C:Usersユーザー名AppDataRoamingMicrosoftWindowsStart MenuProgramsStartup
もしくは下記でも。
%APPDATA%MicrosoftWindowsStart MenuProgramsStartup
2-2. Dropboxに保存しておいたahkファイルを、Altを押しながらスタートアップフォルダに移動。
2-3. スタートアップフォルダにショートカットが作成される。
ahkファイルの編集
1. 今回は、下記のように編集した。
;-----------------------------------------------------
; ChangeKey -> CapsLock -> F13
; cursor (mac)
F13 & b::Send,{Blind}{Left}
F13 & p::Send,{Blind}{Up}
F13 & n::Send,{Blind}{Down}
F13 & f::Send,{Blind}{Right}
;-----------------------------------------------------
; Home,End,PgUp,PgDn
F13 & a::Send,{Blind}{Home}
F13 & e::Send,{Blind}{End}
F13 & s::Send,{Blind}{PgUp}
F13 & v::Send,{Blind}{PgDn}
;-----------------------------------------------------
; BS, Del,
F13 & d::Send,{Blind}{Del}
F13 & i::Send,{Blind}+{End}{Del}
F13 & g::Send,{Blind}+{Home}{Del}
F13 & u::Send,{Blind}{BS}
;-----------------------------------------------------
; cursor(vim)
F13 & h::Send,{Blind}{Left}
F13 & j::Send,{Blind}{Down}
F13 & k::Send,{Blind}{Up}
F13 & l::Send,{Blind}{Right}
;-----------------------------------------------------
; Back space
F13 & Alt::Send,{Blind}{BS}
; Enter
F13 & Space::Send,{Blind}{Enter}
;-----------------------------------------------------
; three dot reader
F13 & sc027::Send,{…}
(概要)
左カーソル: F13 (CapsLock) + B / F13 + H
右カーソル : F13 (CapsLock) + F / F13 + L
上カーソル : F13 (CapsLock) + P / F13 + K
下カーソル : F13 (CapsLock) + N / F13 + J
Home : F13 (CapsLock) + A
End : F13 (CapsLock) + E
Page Down : F13 (CapsLock) + V
Page Up : F13 (CapsLock) + S
Delete : F13 (CapsLock) + D
Backspace : F13 (CapsLock) + Alt / F13 (CapsLock) + U
Enter : F13 (CapsLock) + Space
行末まで削除 : F13 (CapsLock) + I
3点リーダー (おまけ) : F13 + ;
※ 最初、H, L, K, JはAltと組み合わせて
!h::Send,{blind}{Left} !j::Send,{Blind}{Down} !k::Send,{Blind}{Up} !l::Send,{Blind}{Right}
と入れていたのですが、 別のショートカットとバッティングすることがあったので、F13との組み合わせに変更した。
結局、mac風のもvim風のも、慣れたらどちらとも使い勝手がよく、
メール系やサイト閲覧系などの用途に合わせて
イメージしやすい方で使い分けています。
また、Backspaceは、
「Backspace : F13 (CapsLock) + Alt / F13 (CapsLock) + U」
と2つ割り当てていますが、
F13 + Alt: | イラストレーターなどのグラフィック系ソフトを使用する際、右手は常にマウスを触っている状態で、左手だけでBSを打ちたい時に使用。 |
F13 + U: | 通常の文章作成時に使用。 |
というように、使い分けています。
1つのショートカットを2つのキーにassignするって、
ちょっともったいないですが、
今のところ、他にたくさんショートカットキーを作る予定もないので、
このように使用しています。
2. あとは、PCを再起動するか、ahkファイルを右クリックしてRun ScriptすればOK。
※以下、AutoHotkeyの備忘録。
- ホットキーのラベルには、大文字小文字の区別はない。
- 複合キーを指定する場合は「&」でつなぐ。このとき&マークの前後の半角スペースは必須。
- カーソルなどの役割系のキーは{}の中に記述。
- 途中に挟んである{Blind}は、他キーとの同時打鍵を有効にするもの。例えば範囲選択などの操作は、Shift + カーソルキーなどで行うが、{Blind}を記述することで可能となる。
キー | ラベル | 文字表記のラベル |
Shift | + | Shift |
Ctrl | ^ | Control (Ctrl) |
Alt | ! | Alt |
Win | # | |
AltGr※1 | <^?>! |
キー | ラベル | 修飾記号での表記 |
左シフト | LShift | ^+ |
右シフト | RShift | >+ |
左コントロール | LControl (LCtrl) | <^ |
右コントロール | RControl (RCtrl) | >^ |
左Alt | LAlt | <! |
右Alt | RAlt | >! |
左Win | LWin | <# |
右Win | RWin | ># |
キー | ラベル | |
Numlock ON | Numlock OFF | |
0 | Numpad0 | NumpadIns |
1 | Numpad1 | NumpadEnd |
2 | Numpad2 | NumpadDown |
3 | Numpad3 | NumpadPgDn |
4 | Numpad4 | NumpadLeft |
5 | Numpad5 | NumpadClear |
6 | Numpad6 | NumpadRight |
7 | Numpad7 | NumpadHome |
8 | Numpad8 | NumpadUp |
9 | Numpad9 | NumpadPgUp |
. | NumpadDot | NumpadDel |
/ | NumpadDiv | |
* | NumpadMult | |
+ | NumpadAdd | |
- | NumpadSub | |
Enter | NumpadEnter |
References
今回、たくさんのサイトを参考にさせていただきました。
ありがとうございます!
◆ ショートカットキー作成全般
本記事でやること Aの左隣のCapsLockキーをCtrlに変更する 右AltキーをF13キーに変更する F13キー + HJKLキーの組み合わせで矢印キーを実現する 検証環境 Windows 10 ThinkPad...
Windowsでカーソル移動のキーボードショートカットをMac風にする。キーボードショートカットを設定することで、ホームポジションから動かなくて済むようにしたい。
※ このポエムはUSキーボードを前提に書かれています。 ※ 2019.10.25 Windowsでよく出てくる「F2で編集」を「Ctrl+Alt+Enter」に割り当てました。 Windowsの気持ち悪いショートカット Wind...
ホームポジションを崩さないからテキスト入力が格段に速くなる つい先日、iMacに付属してたMagic keyboardから、2万円の高級&静音キーボード『RE...
マウスが無いとPCが使えないと思い込んでいませんか?実際には、マウスが無くてもPCは使えます。何らかの理由でマウスが手元にないときは(キーボードの新...
◆ カーソル等のショートカットキー備忘録
ども、ゆうせいです。Google日本語入力を使っている方に朗報です。矢印や三点リーダを一瞬で出す方法を教えてもらったので、ブログでご紹介したいと思います。 まず、「→」(矢印)を出したい時は何と入力していますか? ほとんどの方は、「やじるし」と入力していると思います。たしかに「やじるし」と入力すれば変換できるのですが、いろんな方向の矢印が出てくるので、そのとき必要な矢印を瞬時に選ぶことは難しいです。 また、矢印の方向を入力している人も多いかと思います。たとえば「うえ」とか「みぎ」とか。ま、これも有効な方法ではあるのですが、「上」と変換したいときにはスペースキーを何度か押すことになりますし、そのまた逆もしかりです。 Google日本語入力で矢印や三点リーダをすぐに出す方法 さて、前置きが長くなりましたが、これらを解決する入力方法をご紹介します。いずれも「ひらがな入力モード」で使用します。 矢印を入力するなら、 Z + Hで「←」(左矢印) Z + Jで「↓」(下矢印) Z + Kで「↑」(上矢印) Z + Lで「→」(右矢印) となります。 ZとHJKLを組み合わせるだけ。これで狙った方向の矢印を確実に一瞬で出すことが可能です。もちろん連続入力も可能なので、 左に注目して欲しいときには、 ZHZHZHZHZHと押すだけで、 ←←←←←となります。 最高に便利です。 さらに、よく使う表現として三点リーダー「…」がありますが、これもすぐに出すことができます。 Z + .で「…」(三点リーダ) たったこれだけです。もう「・」を三回入力して変換する必要はありません。 他には、 Z + ,で「‥」(二点リーダ) Z + -で「〜」(波線、波ダッシュ) Z + で「』」(二重閉じかぎかっこ) があります。 とくに「〜」はよく使いますね。 さいごに 最近はMac OSを更新してEl Capitanの日本語入力を使っているのですが、またGoogle日本語入力を使いたくなるほど素晴らしいです。 いろいろ組み合わせて、便利に使っていこうと思います。 それではまた。 ご存知、ゆうせいでした。 参考:Google 日本語入力
Unixライクな環境では必ず1度はお世話になるエディタと言えば「Vim」ですが、現代的な目線から見ると若干キーの操作が不思議なところがあります。特にカーソルの上下左右移動は横一列の「h・j・k・l」キーを使用...
◆ 「lzh」ファイル解凍のトラブルシューティング
◆ AutoHotKey全般
AutoHotkeyを使用したキーボードのカスタマイズについて記述しています。
今回は、Windowsで快適なプログラミング環境を作るためによく使われている「AutoHotKey」について、作業効率化のためにどのような設定を行っているかをご紹介します。 ※ AutoHotKeyは「Ctrl(Control)キーとCapslockキーを入れ替える」や「あるキーを組み合わせて押すとブラウザを開いてGoogle検索をする」などができるキーボードの入力をかなり自由にカスタマイズできる
◆ VSCodeについて
プロのエンジニアが愛用する、初心者でも使いやすいフリーのWindows向けテキストエディタを11個厳選して紹介する。 プログラミング初心者にとって役に立つはずだ。
AutoHotKeyはこれ以上無いくらいに便利なキーボードユーティリティですが、メモ帳で編集するのは面倒です。なぜっていちいち保存する必要があるシンタックスハイライトが使えない。だってメモ帳だもん常駐プログラム以外のファイルを編集するのには
前回はコマンドプロンプトを使ってPythonに触れてみましたが、やっぱりプログラミングといえばテキストエディタでしょ!ということで、今後はテキストエディタを使用して動かしてみたいと思います。今回はそのための準備段階として、エディタのダウンロ
◆ ChangeKeyでCapLocksが変更できない時のトラブルシューティング
AutoHotKeyで半角/全角キーやCapsLockは正常に扱えません。その理由と対策とは?
ChangeKey 今回は、ChangeKeyを使用して、WindowsキーをF13キーに変更する方法をメモしておきます。これは、AutoHotkeyでホットキーを設定するに当たって、Windowsキーをそのまま利用するのと、いろいろな条件下ではまることが分かったからです。Ctrlキーなども、F14-F24キーに割り当てると便利かもしれません。それに必要な情報(F13-F24の仮想キーコードとスキャンコードの一覧もメモしておきます。この記事は基本的にはAu...
◆ レジストリを変更する方法
Windows registry patch to use CAPSLOCK as F13. GitHub Gist: instantly share code, notes, and snippets.
WindowsのPC使っていると、ショートカットキーで Ctrl+C(コピー) Ctrl+X(切り取り) Ctrl+V(貼り付け) Shift+Ctrl+V(書式無視して値だけ貼り付け) Ctrl+A(全部選択) Ctr...
Windows で CapsLock を F13 に変更するには、2通りの方法があります。