はじめに
windowsにて日本語キーボードを使っている方々対象の記事です。
無変換、変換
キーは最高のポジションにいるにも関わらず、全く仕事をしていません。
また、例えば矢印キーの移動てホームポジションから離れて打つか、小指で打たなければいけません。(これ指の健康に悪いです)
ctrl tab
などももはや人間の手の動きではないくらい曲げなければ打てません。。
なので今回は無変換、変換 + キー
に日々の基本動作を割り当てましょうという話です。
無変換 + ijkl
で 矢印キー上下左右
変換 + u or o
で ctrl tab or ctrl shift tab
を実現します。
autohotkeyを導入します。
ダウンロード
https://www.autohotkey.com/
autohotkey script
すぐコピペできるようにしています。
気に入らない箇所は修正したらOKです。
こちらにも上げています。
https://github.com/kou0123/dotfiles
shortcut.ahk
#NoEnv ; Recommended for performance and compatibility with future AutoHotkey releases.
; #Warn ; Enable warnings to assist with detecting common errors.
SendMode Input ; Recommended for new scripts due to its superior speed and reliability.
SetWorkingDir %A_ScriptDir% ; Ensures a consistent starting directory.
;========vk1D(無変換)===========
; ---十字キーの設定、enter backspace------
vk1D & i::Send,{Blind}{Up}
vk1D & j::Send,{Blind}{Left}
vk1D & k::Send,{Blind}{Down}
vk1D & l::Send,{Blind}{Right}
vk1D & u::Send,{Blind}{BS}
vk1D & o::Send,{Blind}{ENTER}
; ---- テキスト編集系------
vk1D & w::Send,{Blind}{End}+{Home}{BS}
vk1D & r::Send,{Blind}{End}+{Home}^{c}
vk1D & e::Send,{Blind}{End}+{Home}^{x}
vk1D & s::Send,{Blind}+{home}
vk1D & f::Send,{Blind}+{End}
vk1D & d::Send,{Blind}{End}{Enter}
;「無変換+上段キー」でファンクションキーの動作をさせる
vk1D & 1::Send,{Blind}{F1}
vk1D & 2::Send,{Blind}{F2}
vk1D & 3::Send,{Blind}{F3}
vk1D & 4::Send,{Blind}{F4}
vk1D & 5::Send,{Blind}{F5}
vk1D & 6::Send,{Blind}{F6}
vk1D & 7::Send,{Blind}{F7}
vk1D & 8::Send,{Blind}{F8}
vk1D & 9::Send,{Blind}{F9}
vk1D & 0::Send,{Blind}{F10}
vk1D & -::Send,{Blind}{F11}
vk1D & ^::Send,{Blind}{F12}
;========vk1C(変換)===========
;tab移動など
vk1C & o::Send,{Blind}^{Tab}
vk1C & u::Send,{Blind}^+{Tab}
vk1C & l::AltTab
vk1C & j::ShiftAltTab
vk1C & n::Send,{Blind}!{Left}
vk1C & ,::Send,{Blind}!{Right}
vk1D & vk1C::Send,{Blind}{vkF3sc029}
;sandSの設定
Space Up:: Send, % "{Shift Up}" (A_TimeSincePriorHotkey < 200 ? " " : "")
+Space:: Send, +{Space}
Space:: RShift
##機能の説明
おまじない
- これはとりあえず書いておいてください。
#NoEnv ; Recommended for performance and compatibility with future AutoHotkey releases.
; #Warn ; Enable warnings to assist with detecting common errors.
SendMode Input ; Recommended for new scripts due to its superior speed and reliability.
SetWorkingDir %A_ScriptDir% ; Ensures a consistent starting directory.
基本
-
無変換+i
を矢印上
にしたい場合です。 -
vk1D&i
は無変換キー+i
を意味します。Send,{Blind}{up}
は矢印上
に割り当てるを意味します。
vk1D & i::Send,{Blind}{Up}
無変換(十字キーかつenter backspace)
-
無変換 + ijkl
に矢印キー上下左右
を割り当てています。 - vimライクな動きを実現できます。個人的に割当は
hjkl
よりijkl
の方が好きなので、こうしています。お好きな方にカスタマイズしてみてください。 - もうホームポジションから指をはなす事なく、爆速な動きが可能になります。
vk1D & i::Send,{Blind}{Up}
vk1D & j::Send,{Blind}{Left}
vk1D & k::Send,{Blind}{Down}
vk1D & l::Send,{Blind}{Right}
- こちらもかなり便利です。よく使う
BS
、ENTER
を指をはなす事無く打てるのでかなり早くなります。
vk1D & u::Send,{Blind}{BS}
vk1D & o::Send,{Blind}{ENTER}
無変換 テキスト編集系
-
{End}+{Home}
にて一行選択
をしています。+
はshift
の意味です。 - 上から、一行削除、一行コピー、一行切り取りが可能になります。
^
はctrl
の意味です。
vk1D & w::Send,{Blind}{End}+{Home}{BS}
vk1D & r::Send,{Blind}{End}+{Home}^{c}
vk1D & e::Send,{Blind}{End}+{Home}^{x}
-
+{home}
はshift home
です。文頭まで選択です。 -
+{End}
はshift end
です。文末まで選択です。
vk1D & s::Send,{Blind}+{home}
vk1D & f::Send,{Blind}+{End}
- 下に一行挿入です。ソースコード書いてる人は地味に便利かも。
vk1D & d::Send,{Blind}{End}{Enter}
###「無変換+上段キー」でファンクションキーの動作をさせる
-
無変換キー+2
などはよく使いますね。 - eclipseなどでは
無変換+3 or 4
も多用しますが、キー間が近いのでストロークが少なく済みます。
vk1D & 1::Send,{Blind}{F1}
vk1D & 2::Send,{Blind}{F2}
vk1D & 3::Send,{Blind}{F3}
vk1D & 4::Send,{Blind}{F4}
vk1D & 5::Send,{Blind}{F5}
vk1D & 6::Send,{Blind}{F6}
vk1D & 7::Send,{Blind}{F7}
vk1D & 8::Send,{Blind}{F8}
vk1D & 9::Send,{Blind}{F9}
vk1D & 0::Send,{Blind}{F10}
vk1D & -::Send,{Blind}{F11}
vk1D & ^::Send,{Blind}{F12}
変換 tab移動系
-
^
はctrl
の意味です -
ctrl tab
,ctrl shift tab
を実現します。 - ホームポジションから離れることもなく、かなり使えます。
vk1C & o::Send,{Blind}^{Tab}
vk1C & u::Send,{Blind}^+{Tab}
-
alt tab
,alt shift tab
を実現します。 - 上の
ctrl tab
と組み合わせることで、爆速アプリ切り替えが可能になります。
vk1C & l::AltTab
vk1C & j::ShiftAltTab
-
!
はalt
です。 - 戻る、進むを実現します。
- ブラウジングがかなり早くなります。
vk1C & n::Send,{Blind}!{Left}
vk1C & ,::Send,{Blind}!{Right}
-
無変換
を打ってから、変換
で、日本語/英数
切り替えを実現します。 - これも結構使えます。
vk1D & vk1C::Send,{Blind}{vkF3sc029}
- sandSです。スペース長押しすると、スペースがシフトの役割を担います。
-
space
s
でS
など打てるようになります。 - 文字を打っているときに、特に動かさずに大文字が入力できるようになり便利です。
Space Up:: Send, % "{Shift Up}" (A_TimeSincePriorHotkey < 200 ? " " : "")
+Space:: Send, +{Space}
Space:: RShift
最後に
- 慣れると、早すぎだろと言われるようになります。離れられなくなるリスクはありますが笑
- 親指を無変換、変換においておくことで特に指を動かさず、様々な動きを実現することができます。
- 不具合が生じた場合は、一旦起動を停止すると治ります。