ぺんちゃん日記

食と歴史と IT と。 Web の旅人ぺんじろうが好奇心赴くままに彷徨います 。

入力カーソルを複数回送信する

目次


f:id:yasushiito:20190403184928p:plain

スクリーンキーボードにはキーリピートの機能がないのです。

スクリーンのキーボードで文字入力してます。
すごく面倒だけどこれしかないから使ってます。
今より元気だった頃は自分でマウスクリックして入力していましたが、徐々にマウスクリックもきつくなり一定時間ポイントで入力する形式に変えました。
これで困るのが キーリピートがないこと。

例えば777と入力したいとします。
マウスをクリックして入力する形式であれば3回連打すればオッケーです。
しかし一定時間ポイントだとそうはいかない。
誤入力防止のため、一度送信した文字はマウスポインターを外してからもう一度ポイントをし直さなければならないのです。
つまり 数字の7にポイントして入力されたら7の外にポイントを外して再び7をポイントし直すのです。
これを3回繰り返す。
マウスの移動が慌ただしい日、3回ぶん一定時間待たなければなりません。
めちゃくちゃ効率が悪い………。
特にひどいのが入力カーソルの移動です。
音声入力した後に間違って認識された場所を修正するために移動しようと思うと余裕で10個くらいは動かさなければなりません。
マウスポインターを修正したい場所に動かしてクリックすればいいだけの話ですが、編集エディタとスクリーンキーボードの位置が離れているとマウスの移動量がめちゃくちゃでかい………。
スクリーンキーボードのオプションにキーのリピート機能があればなー。
なんとかなんねーかなー。
と言って1年くらい放置してました。
マウスポインターがポイントしているキーが分かれば全てのキーにおいてリピートさせられるんだけど、当たり前だがそんなことはできない。
完璧を求めて 手をつけるのをためらっていたけど不完全でも多少マシにしたい。

対策を考える。

プログラミング中の入力カーソルの移動は多少楽なんですよ。
Ctrl +矢印で1ワードごとに移動できるから。
英語ではブランクで分かち書きされてるので比較的簡単にまとめて移動できるんですね。
でも日本語だと 単語区切りの移動ができないんだ。
Ctrl +矢印を入力しても律儀に一文字ずつ動きます。
日本語用のワープロソフトだったら できるのかもしれないけど、 Google Chrome では無理。
とっても便利なはずの Ctrl +矢印のショートカットが事実上死んでいる。
キーボードショートカットの一等地のような場所なのでAutoHotkeyで上書きすることをためらっていたけど、まったく活用されていないならここに手を入れてもいいかな。
欲を言えばポイントしている間ずっと入力し続けて欲しいのだけど、 マウスポインターがどのキーをポイントしているか調べられないからなあ。

そこで暫定的にこうしようと考えました。

Google Chrome で作業中に限って Ctrl +矢印を入力された場合、5回繰り返す。

キーリピートできるのは Google Chrome の矢印だけということになります。
しかも移動量を調節できず、必ず5回固定。
なんとも中途半端な。
何で5回だよ? 別に10回でもいいんだけど。
それでもやらないよりはマシなのだ。

Google Chrome を利用中の時だけ’と言うのは #IfWinActive を使えばよし。
出来上がったスクリプトはこんな感じ。

;Google Chrome で Ctrl +矢印を入力すると5回ずつ移動する。
;Ctrl +矢印では単語ごとに移動して欲しいところだけど、 Google Chrome は日本語を分解できないので結局1文字ずつしか動かない。
;スクリーンキーボードにはキーのリピート機能がないので キャレットの移動がめちゃくちゃ大変。
;そこでAutoHotkeyを利用して5回ずつ固定でもいいから大きめに動かすようにする。
;範囲選択しながら移動する時に困らないようにシフトキーとの組み合わせにも対応する。

#IfWinActive ahk_exe Chrome.exe
^Left::    send, {Left 5}
^+Left::    send, +{Left 5}
^Right::    send, {Right 5}
^+Right::    send, +{Right 5}
^Up::    send, {Up 5}
^+Up::    send, +{Up 5}
^Down::    send, {Down 5}
^+Down::    send, +{Down 5}

myahk/lib/adjust.ahk at master · yasushiito/myahk


スクリプトはウィンドウサイズの調整スクリプトの中に混ぜ込みました。

Ctrl +矢印だけで完成とするのはちょっと早い。
矢印で大きく移動したい状況は範囲選択でも発生します。
シフトキーを押しながら矢印移動するやつですね。
Ctrl + SHIFT +矢印にも対応させます。

とりあえずこれで様子見。
DELキーと backspace キーにも対応しておけばよかったか?

この記事に登場するAutohotkey スクリプトについて

この記事の中で私が作成したプログラムは、全て自由に使うことができます。
詳しくはこちら