いろいろやってる岩本です。
いまさらながら、毎回 “岩本” と名乗っていながら投稿者名が “たいよう” となっているのは、本名が “岩本太陽” だからです。こんにちは。
さて、唐突ですが、[変換]キーと[無変換]キー使い倒してますか!?
はい、使い倒していませんね。
そもそも[変換]キーと[無変換]キーって、どれくらいの方が使われているのでしょうか?
多くの方は、漢字変換はスペースキーで変換しているだろうし、無変換は変換しなけりゃ良いだけですし、そもそもMacユーザーや英語キーボードユーザーからすれば「そんなキー無いよ!」って話だし、岩本予想だと9割9分ぐらいのユーザーは[変換]キーと[無変換]キーを使っていないのではないかと予想します。
ですが、両手をキーボードのホームポジションに置いて、よーく考えてみてください。
こんなにも親指で押しやすい一等地にありながら、これらのキーを使っていないのはもったいないと思いませんか?
見よ、この一等地っぷりを!
という事で、本日は、[変換]キーと[無変換]キーを使い倒す方法について書いてみたいと思います。
まず、どうすれば使い倒せるのかという話ですが、[変換]キーと[無変換]キーを、[Shift]キー、[Ctrl]キー、[Alt]キーのような装飾キーに変えてしまい、[変換]キーや[無変換]キーを押しながら別のキーを押す事で、いろいろな操作をやってしまおう!という事です。
そこで登場するのが AutoHotKey です!
AutoHotKey とは、キーボードやマウスといった入力デバイスのイベントをフックし、さまざまな制御を行う事ができる常駐型のWindowsアプリです。
※エンジニアにはMacユーザーが多いと思いますが、ゴメンナサイ。今回は完全にWindowsネタです。
例えば、
・ [A]キーが押されたら、[U]キーを押した事にする。
・ [T]キーが押されたら、[O]キーを押した事にするけど、特定のアプリ上では[H]キーを押した事にする。
・ [O]キーが押されたら、マウスカーソル上の情報を取得する。
・ 特定のアプリ上でマウスが右クリックされたら、[K]キーを入力する。
・ [E]キーが押されたらプロセスリストを見て、指定したアプリが起動していなければ起動する。
・ [Y]キーが押されたら入力ダイアログを出して、入力されたテキストをファイルに記録する。
とかです。
で、まずはインストールなのですが、エンジニアブログなので、インストール方法や詳細な設定等は割愛させて頂きます。
簡単に書くと、ココから AutoHotKey をダウンロードして、インストールして、設定ファイルを書いて、ahk.exe の引数に設定ファイルを渡して起動!です。
という事で、ここからは実際のスクリプトを交えて、オススメ設定をいくつか紹介したいと思います。
まず、イチオシはこれ。
1 2 |
vk1Csc079 & i:: Send, {Up} vk1Csc079 & k:: Send, {Down} |
AutoHotKey の基本機能を使ったキーのリマップです。
上が、[変換]キー + [i]キーを[↑]キーにする設定、下が、[変換]キー + [k]キーを[↓]キーにする設定です。
これ、何が嬉しいかというと、ブラウザのアドレスバーにURLを入力した際の候補選択や、漢字変換の候補選択、その他いろいろな場面でサジェストされる候補の選択を、ホームポジションのまま行えます。
加えて、ホームポジションのままで、いろいろやってしまおうという設定。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
vk1Csc079 & j:: Send, {Left} vk1Csc079 & l:: Send, {Right} vk1Csc079 & z:: Send, #d vk1Csc079 & vk20sc039 :: Send, {Enter} vk1Dsc07B & i:: Send, {PgUp} vk1Dsc07B & k:: Send, {PgDn} vk1Dsc07B & j:: Send, {Home} vk1Dsc07B & l:: Send, {End} vk1Dsc07B & o:: Send, {Tab} vk1Dsc07B & u:: Send, +{Tab} vk1Dsc07B & vkBEsc034 :: AltTab vk1Dsc07B & vkBCsc033 :: ShiftAltTab vk1Dsc07B & vkC0sc01A :: Send, !{F4} vk1Dsc07B & vk1Csc079 :: Send, {vkF3sc029} LCtrl & vk20sc039 :: Send, {BS} |
上から順に、
キー操作 |
実際の動作 |
|
---|---|---|
変換 + j |
⇒ |
← |
変換 + l |
⇒ |
→ |
変換 + z |
⇒ |
Windows + d (全ウィンドウ最小化) |
変換 + SPACE |
⇒ |
Enter |
無変換 + i |
⇒ |
PageUp |
無変換 + k |
⇒ |
PageDown |
無変換 + j |
⇒ |
Home |
無変換 + l |
⇒ |
End |
無変換 + o |
⇒ |
Tab |
無変換 + u |
⇒ |
Shift + Tab |
無変換 + > |
⇒ |
Alt + Tab (タスクの切り替え) |
無変換 + < |
⇒ |
Shift + Alt + Tab (タスクの逆切り替え) |
無変換 + @ |
⇒ |
Alt + F4 (アプリ終了) |
無変換 + 変換 |
⇒ |
半角/全角 (IME切り替え) |
CTRL + SPACE |
⇒ |
BS |
となります。これで、大体の基本操作がホームポジションで行えます。
中でも、[Home]キー、[End]キー、タスクの切り替え、IME切り替え、[BS]キー辺りがオススメです。
ちなみに、これの最大のポイントは、[Shift]キー、[Ctrl]キー、[Alt]キーと違って[変換]キーや[無変換]キーの組み合わせのショートカットを用意しているアプリなんて聞いたことが無いので、アプリに左右される事もなく、どんな場面でも使えるのが良いところです。
では、もう少しスクリプトっぽい物を。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
vk1Dsc07B & f:: Clipboard := CopyClipboard() If (RegExMatch(Clipboard, "^https?://")) { Run, %Clipboard% } If (RegExMatch(Clipboard, "\\")) { Run, %Clipboard%, , UseErrorLevel If (ErrorLevel != 0) { Run, Explorer.exe } } Return CopyClipboard() { send, ^c Clipboard := RegExReplace(Clipboard, "^ +|\r\n| +$", "") If (!RegExMatch(Clipboard, "^https?://") AND !RegExMatch(Clipboard, "\\")) { Clipboard = ; } Return Clipboard } |
テキストを選択して[無変換]キー + [F]キーを押すと、改行、および先頭と最後のスペースを削除し、テキストの先頭が「http」で始まっていればURLと認識して標準のブラウザを開きます。
また、「¥(半角)」が含まれていればWindowsのファイルパスとしてフォルダまたはファイルを開きます。ファイルパスがファイルまで指定されている場合は適切なアプリでファイルが開きます。(これはWindowsの機能)
仕事柄、メールやメッセンジャーでURLやファイルサーバー上のファイルパスをやり取りするので、かなり重宝してます。
もう、いちいちブラウザ開いたり、フォルダ開いてコピペとかやっとれません!
次は、前のスクリプトの流用ですが、仕事で色々なブラウザでサイトをチェックする事があるので、
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 |
vk1Dsc07B & 1:: Clipboard := CopyClipboard() Run, %Clipboard% Return vk1Dsc07B & 2:: Clipboard := CopyClipboard() Run, C:\Program Files\Internet Explorer\iexplore.exe %Clipboard% Return vk1Dsc07Bt & 3:: Clipboard := CopyClipboard() Run, C:\Users\iwamoto.motoaki\AppData\Local\Google\Chrome\Application\chrome.exe %Clipboard% Return vk1Dsc07B & 4:: Clipboard := CopyClipboard() Run, C:\Program Files (x86)\Mozilla Firefox\firefox.exe %Clipboard% Return vk1Dsc07B & 5:: Clipboard := CopyClipboard() Run, C:\Program Files (x86)\Opera\opera.exe %Clipboard% Return vk1Dsc07B & 6:: Clipboard := CopyClipboard() Run, %Clipboard% Run, C:\Program Files\Internet Explorer\iexplore.exe %Clipboard% Run, C:\Users\iwamoto.motoaki\AppData\Local\Google\Chrome\Application\chrome.exe %Clipboard% Run, C:\Program Files (x86)\Opera\opera.exe %Clipboard% Run, C:\Program Files (x86)\Mozilla Firefox\firefox.exe %Clipboard% Return |
選択したテキストがURLだった場合、各ブラウザでURLを開きます。
・ [無変換]キー + [1]キーで標準のブラウザ
・ [無変換]キー + [2]キーでInternet Explorer
・ [無変換]キー + [3]キーでChrome
・ [無変換]キー + [4]キーでFirefox
・ [無変換]キー + [5]キーでOpera
・ [無変換]キー + [6]キーで全てのブラウザ
選択したテキストがURLでない場合は、単純にそれぞれのブラウザを起動します。
コピー処理は1つ前で紹介したスクリプトの CopyClipboard関数をキックしてます。
そして、これまた仕事柄 hosts に設定を追加する事が多いので、
1 2 3 4 5 6 7 8 9 10 11 12 |
vk1Dsc07B & h:: InputBox, IPHost, hosts設定, hosts に設定するIPアドレスとホスト名を入力してください If (ErrorLevel == 0) { If (IPHost <> "") { FileAppend, ( %IPHost% ), C:\WINDOWS\system32\drivers\etc\hosts } } Return |
[無変換] + [h]キーを押すと、入力ダイアログが現れ、IPアドレスとFQDNを入力すると、hostsファイルに追記します。
そして画面上の色情報を取得したい時はコレ。カラーピッカーです。
1 2 3 4 5 |
vk1Dsc07B & Esc:: MouseGetPos, MouseX, MouseY PixelGetColor, Clipboard, %MouseX%, %MouseY%, Slow Clipboard := RegExReplace(Clipboard, "^0x", "") Return |
[無変換]キー + [ESC]キー で押すと、マウスカーソル位置の色情報を取得して、RRGGBB の形式でクリップボードにコピーします。
で、、、折角なので[変換]キーと[無変換]キー以外の設定も紹介したいと思います。
まずは[変換]キーと[無変換]キーより使われていないのではないかと予想される[CapsLock]キー。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
vkF0sc03A :: Process, Exist, Mail.exe If (ErrorLevel <> 0) { IfWinActive, ahk_class MailMainFrame { PostMessage, 0x112, 0xF020, , , ahk_class MailMainFrame } Else { DetectHiddenWindows, On WinActivate, ahk_class MailMainFrame DetectHiddenWindows, Off } } Else { Run, Mail.exe } Return |
この設定は、[CapsLock]キーを押すと、Mail.exe が起動しているかをチェックし、
・ 起動していなければ起動する
・ 起動していてアクティブであれば最小化する
・ 起動していても最小化されていれば元の大きさに戻す
・ 起動していても非アクティブであればアクティブ化する
という動作をします。
メールをチェックする際に、メーラーのアクティブ・非アクティブを左手小指でチャチャと切り替えれます。
頻繁に使うアプリを設定すると便利です。
次は、[PrintScreen]キーの設定です。
通常[PrintScreen]キーを押すとスクリーンキャプチャがクリップボードにコピーされますが、
1 2 3 |
#IfWinNotExist ahk_class FastStoneScreenCapturePanel PrintScreen:: Run, C:\Program Files (x86)\FastStone Capture\FSCapture.exe #IfWinActive |
この設定を入れると[PrintScreen]キーを押した際に指定されたスクリーンキャプチャソフトが起動し、既に起動していればスクリーンキャプチャソフトが[PrintScreen]キーに割り当てた動作をします。
また、3キーの同時押しも認識できます。
1 2 3 4 5 6 7 |
LAlt & s:: If GetKeyState("Ctrl", "P") { send, ^c Clipboard := RegExReplace(Clipboard, "^ +|\r\n| +$", "") Run, http://www.google.co.jp/search?q=%Clipboard% } Return |
この場合は、テキストを選択して[Alt]キー + [Ctrl]キー + [s]キーを押すと、Googleで検索します。
と、まぁ、こんな感じで、単純なキーのリマップから、ランチャーとしての使い方、Windowsの制御まで、さまざまな事ができる AutoHotKey ですが、書き方に少しクセがある部分もありますが、色々な事が効率的にできるようになるので、是非、使ってみてください。
そして、是非、全く使われていないであろう[変換]キーと[無変換]キーを使い倒してみてください!
最後に、アライドアーキテクツではエンジニアを募集しています。
ちょっと他人と違う事を考える事が好きな方や、アライドアーキテクツに興味のある方は、こちらのエンジニア採用サイトからご応募ください。
お待ちしてます!
現在の主な仕事はプロジェクトマネジメントです。 Tips情報等、ライトな話題を中心に書いて行ければと思っています。