■経緯
元戦闘員はPCのキーボード入力をよく使う。
まだマウス入力やGUIがあまり発達していない頃に身に着けたviエディタの操作性が
便利で気に入っている。
とにかく、何かあるたびに右手をホームポジションからマウスに移動してクリック
その後再びホームポジションに戻すという作業がいらつくのである。
また昔はHPのキーボードを使っていたのだがCtrlキーが今の左Shiftキーあたりの位置にいて
Ctrl+XXというキーの組み合わせが凄く押しやすかったのを覚えている。
昨今のキーボードはCtrlキーが下の方にいるため使いづらい。
会社で働いていた頃は自分以外ののPCを使って入力することがよくあったので
あまりキーボードのカスタマイズなどはしなかったのだが退職したので
もうそんな心配もいらない。
ということでキーボード入力をカスタマイズすることにした。
■使用するソフト
Change Key v1.50:キーコードの割当を変更するソフト
AutoHotKey:キー入力(複数キーの同時押し、連続押しなども含む)を別のキー入力に置き換えるソフト
■要件
・漫画読んだり小説読んだりWebページ読んだりする、Input的なアプリの使い方の場合、楽をするために
左手だけでできるだけ操作したい。
・メール打ったり文章書いたりするOutput的なアプリの使い方の場合、両手をできるだけホームポジションに置いたまま
マウスをほぼ使わずに
ホームポジションから離れたキーもほぼ使わずに
作業したい。
・アプリごとにCtrl/Alt+XXキーはショートカットですでに割り当てられている可能性が高い。
それと競合しないようなキー設定にしたい
→一等地にありながら使われることのない”無変換”、”変換”キーとの組み合わせで実現する。
・Vimは便利だが入力モード/編集モードというモード切り替えが必要。
これが漢字キーによる日本語入力/アルファベット入力と相性が悪いのでVim自体は使用しない。
またVimキーの設定を移植するというアプローチも取らないことにする。
あくまでも独自設定。(一部Vimっぽくはする)
■どんな感じの操作にするか
・上にも書いたがCtrl/Alt/Winキーと競合しないように”無変換”、”変換”キーを使用する
・「よく使うけどホームポジションからちょっと遠い」キーをホームポジションの近くに割り当てる。
カーソル移動、あるいはEsc/F2/Enter/漢字キー/Menuキー等
■やってみた設定内容
まず最初にCaps LockキーをCtrlキーに置き換える。
すんなりとは行かない模様。
一度Caps LockキーをF14キー(普通は存在しない)に置き換えてからCtrlキーに置き換える必要がある。
なおこれはAutoHotKeyだけではうまく行かないため
F14キーに置き換える設定はChange Keyにて行うこと。
その後AutoHotKeyにてF14キーをCtrlキーに置き換えることで設定完了となる。
ググれば詳しいことはでてくるンゴ。
次に色々便利な設定を行う。
Input的なアプリの場合、左手だけで色々行けるようにする。
”無変換”+d/s : 1行下がる/1行上がる(Down/Up)
”無変換”+f/a : 1ページ下がる/1ページ上がる(PgDown/PgUp)
”無変換”+w/e : 1単語戻る/1単語進む(WindowsのCtrl+w/bに相当)
”無変換”+q/r : 行頭に戻る/行末に進む(Home/End)
Output的なアプリの場合、右手も使ってキーボード入力する
”無変換”+j/k : 1行下がる/1行上がる(Down/Up)
一部左手と重複するが、そのときに応じて動かしやすい方を使えば良い。
”無変換”+h/l : 1文字戻る/1文字進む(left/right)
さらによく使うけど遠いキーを割り当て直し
20200611 uとpを入れ替え
”無変換”+y : (Esc)
”無変換”+u : (漢字キー)
”無変換”+i : (Enter)
”無変換”+o : (Backspace)
”無変換”+p : (F2)(ファイル等の名前変更)
”無変換”+m : (Menuキー)(右クリックメニュー)
この辺は適当に考えたがかなり便利になった。
特にEsc/Backspace/Enterがすごく楽になった。もう手放せない。
20200710 複数レジスタの管理を実装
レジスタa レジスタbとかにそれぞれべつの内容をコピーして好きなときにa,b...を指定してペーストする機能
Viはこれが便利だったけどずっとWindowsで不満だった。
クリップボード履歴管理ソフトで代用していたけど、AutoHotkeyと相性が悪く誤動作するので使用を停止していた。
このレジスタ管理の機能があればもう履歴管理の方はいらないや。
20200801 行単位のカット、コピー機能追加、クリップボード履歴を自動的に数字レジスタに割付け
無変換+bを起点キーとして、便利な行単位の削除を追加した(ネットで見た便利ショートカットのマネ)
無変換+b->無変換+h : カーソルから行頭まで削除
無変換+b->無変換+l : カーソルから行末まで削除
無変換+b->無変換+j : カーソル行から下の行N行を削除
無変換+b->無変換+k : カーソル行から上の行N行を削除
無変換+b->無変換+e : カーソルから一単語分左を削除
無変換+b->無変換+w : カーソルから一単語分右を削除
※この削除された文字列はクリップボードに保存される。
自動的にクリップボードに保存する機能を追加したことで
レジスタ割当していない現在のクリップボードの内容が押し流されてしまうリスクが生じた。
そのため、クリップボードに文字列をコピーする際、自動的に数値レジスタに履歴をコピーするようにした。
無変換+F12キーを起点キーとしてメンテナンス用コマンドを用意
無変換+F12->無変換+ : AutoHotkeyのスクリプトをロード
無変換+F12->無変換+d : 選択中の文字列をDOSコマンドとして実行し結果をエディタ上に出力
無変換+F12->無変換+p : 選択中の文字列をPowerShellとして実行し結果をエディタ上に出力
無変換+F12->無変換+r : 選択中の文字列をRubyコマンドとして実行し結果をエディタ上に出力
■総括
これでキーボード入力がかなり便利になった。
マウスを使う機会も、ホームポジションから手を離す機会もかなり削減出来た。
これからも可能ならマウス処理を置き換えていきたい。
ショッカー戦闘員という触れ込みで始めたBlogだが
覆面をして椅子に座りキーボードを入力している絵面を思い浮かべると
ちょっと間抜けなものがある。
もちろん覆面などしていないのだが。
たまに我に返るのは如何ともし難い。
■今後の予定
Viで気に入っていたコマンドを導入したい。
・カーソル移動時に事前に数字を入力すると数字の回数分移動する。 20200611 完了
・f+一文字でその行のその一文字の部分にジャンプ (fではなく無変換+g->無変換+e/wで実現)20200911 完了
・m mapにてテキスト内の位置を覚え、ジャンプする
2020/07/16 普通のテキストエディタなら可能だが自分がよく使う構造化エディタではできない。諦める。
20200801:色々検討したがこれは無理という結論に達した。
エディタがEditコントロールを使用していないと行番号を取得出来ない。
(自分が使用しているエディタは構造化エディタ以外もあるのだがそれだとEditコントロールを使用していないため情報が取得出来ない)
・特定パターンに対する一連の編集をその場で一時的にマクロ登録し、次々と検索しながら実行
あたりを実現したい。多分AutoHotKeyなら実現できる。
2020/07/16 日本語変換でスペース何回押してどういう漢字にしたとかが無理。
やるならエディタソフトにレコーディングマクロ機能がないと厳しい。
自分がよくつかう構造化エディタでは無理と判明。
※構造化エディタはエディタとしての機能が弱い。
一つのテキストファイルをツリー形式で管理し、不要な部分を折りたたみできるのが
このソフトだけなのでこれを使っているけど不便を感じることも多い。
ツリー管理のとこだけ構造化エディタでエディタの中身は別ソフトみたいな組み合わせができたらいいんだけどなあ。
元戦闘員はPCのキーボード入力をよく使う。
まだマウス入力やGUIがあまり発達していない頃に身に着けたviエディタの操作性が
便利で気に入っている。
とにかく、何かあるたびに右手をホームポジションからマウスに移動してクリック
その後再びホームポジションに戻すという作業がいらつくのである。
また昔はHPのキーボードを使っていたのだがCtrlキーが今の左Shiftキーあたりの位置にいて
Ctrl+XXというキーの組み合わせが凄く押しやすかったのを覚えている。
昨今のキーボードはCtrlキーが下の方にいるため使いづらい。
会社で働いていた頃は自分以外ののPCを使って入力することがよくあったので
あまりキーボードのカスタマイズなどはしなかったのだが退職したので
もうそんな心配もいらない。
ということでキーボード入力をカスタマイズすることにした。
■使用するソフト
Change Key v1.50:キーコードの割当を変更するソフト
AutoHotKey:キー入力(複数キーの同時押し、連続押しなども含む)を別のキー入力に置き換えるソフト
■要件
・漫画読んだり小説読んだりWebページ読んだりする、Input的なアプリの使い方の場合、楽をするために
左手だけでできるだけ操作したい。
・メール打ったり文章書いたりするOutput的なアプリの使い方の場合、両手をできるだけホームポジションに置いたまま
マウスをほぼ使わずに
ホームポジションから離れたキーもほぼ使わずに
作業したい。
・アプリごとにCtrl/Alt+XXキーはショートカットですでに割り当てられている可能性が高い。
それと競合しないようなキー設定にしたい
→一等地にありながら使われることのない”無変換”、”変換”キーとの組み合わせで実現する。
・Vimは便利だが入力モード/編集モードというモード切り替えが必要。
これが漢字キーによる日本語入力/アルファベット入力と相性が悪いのでVim自体は使用しない。
またVimキーの設定を移植するというアプローチも取らないことにする。
あくまでも独自設定。(一部Vimっぽくはする)
■どんな感じの操作にするか
・上にも書いたがCtrl/Alt/Winキーと競合しないように”無変換”、”変換”キーを使用する
・「よく使うけどホームポジションからちょっと遠い」キーをホームポジションの近くに割り当てる。
カーソル移動、あるいはEsc/F2/Enter/漢字キー/Menuキー等
■やってみた設定内容
まず最初にCaps LockキーをCtrlキーに置き換える。
すんなりとは行かない模様。
一度Caps LockキーをF14キー(普通は存在しない)に置き換えてからCtrlキーに置き換える必要がある。
なおこれはAutoHotKeyだけではうまく行かないため
F14キーに置き換える設定はChange Keyにて行うこと。
その後AutoHotKeyにてF14キーをCtrlキーに置き換えることで設定完了となる。
ググれば詳しいことはでてくるンゴ。
次に色々便利な設定を行う。
Input的なアプリの場合、左手だけで色々行けるようにする。
”無変換”+d/s : 1行下がる/1行上がる(Down/Up)
”無変換”+f/a : 1ページ下がる/1ページ上がる(PgDown/PgUp)
”無変換”+w/e : 1単語戻る/1単語進む(WindowsのCtrl+w/bに相当)
”無変換”+q/r : 行頭に戻る/行末に進む(Home/End)
Output的なアプリの場合、右手も使ってキーボード入力する
”無変換”+j/k : 1行下がる/1行上がる(Down/Up)
一部左手と重複するが、そのときに応じて動かしやすい方を使えば良い。
”無変換”+h/l : 1文字戻る/1文字進む(left/right)
さらによく使うけど遠いキーを割り当て直し
20200611 uとpを入れ替え
”無変換”+y : (Esc)
”無変換”+u : (漢字キー)
”無変換”+i : (Enter)
”無変換”+o : (Backspace)
”無変換”+p : (F2)(ファイル等の名前変更)
”無変換”+m : (Menuキー)(右クリックメニュー)
この辺は適当に考えたがかなり便利になった。
特にEsc/Backspace/Enterがすごく楽になった。もう手放せない。
20200710 複数レジスタの管理を実装
レジスタa レジスタbとかにそれぞれべつの内容をコピーして好きなときにa,b...を指定してペーストする機能
Viはこれが便利だったけどずっとWindowsで不満だった。
クリップボード履歴管理ソフトで代用していたけど、AutoHotkeyと相性が悪く誤動作するので使用を停止していた。
このレジスタ管理の機能があればもう履歴管理の方はいらないや。
20200801 行単位のカット、コピー機能追加、クリップボード履歴を自動的に数字レジスタに割付け
無変換+bを起点キーとして、便利な行単位の削除を追加した(ネットで見た便利ショートカットのマネ)
無変換+b->無変換+h : カーソルから行頭まで削除
無変換+b->無変換+l : カーソルから行末まで削除
無変換+b->無変換+j : カーソル行から下の行N行を削除
無変換+b->無変換+k : カーソル行から上の行N行を削除
無変換+b->無変換+e : カーソルから一単語分左を削除
無変換+b->無変換+w : カーソルから一単語分右を削除
※この削除された文字列はクリップボードに保存される。
自動的にクリップボードに保存する機能を追加したことで
レジスタ割当していない現在のクリップボードの内容が押し流されてしまうリスクが生じた。
そのため、クリップボードに文字列をコピーする際、自動的に数値レジスタに履歴をコピーするようにした。
無変換+F12キーを起点キーとしてメンテナンス用コマンドを用意
無変換+F12->無変換+ : AutoHotkeyのスクリプトをロード
無変換+F12->無変換+d : 選択中の文字列をDOSコマンドとして実行し結果をエディタ上に出力
無変換+F12->無変換+p : 選択中の文字列をPowerShellとして実行し結果をエディタ上に出力
無変換+F12->無変換+r : 選択中の文字列をRubyコマンドとして実行し結果をエディタ上に出力
■総括
これでキーボード入力がかなり便利になった。
マウスを使う機会も、ホームポジションから手を離す機会もかなり削減出来た。
これからも可能ならマウス処理を置き換えていきたい。
ショッカー戦闘員という触れ込みで始めたBlogだが
覆面をして椅子に座りキーボードを入力している絵面を思い浮かべると
ちょっと間抜けなものがある。
もちろん覆面などしていないのだが。
たまに我に返るのは如何ともし難い。
■今後の予定
Viで気に入っていたコマンドを導入したい。
・カーソル移動時に事前に数字を入力すると数字の回数分移動する。 20200611 完了
・f+一文字でその行のその一文字の部分にジャンプ (fではなく無変換+g->無変換+e/wで実現)20200911 完了
・m mapにてテキスト内の位置を覚え、ジャンプする
2020/07/16 普通のテキストエディタなら可能だが自分がよく使う構造化エディタではできない。諦める。
20200801:色々検討したがこれは無理という結論に達した。
エディタがEditコントロールを使用していないと行番号を取得出来ない。
(自分が使用しているエディタは構造化エディタ以外もあるのだがそれだとEditコントロールを使用していないため情報が取得出来ない)
・特定パターンに対する一連の編集をその場で一時的にマクロ登録し、次々と検索しながら実行
あたりを実現したい。多分AutoHotKeyなら実現できる。
2020/07/16 日本語変換でスペース何回押してどういう漢字にしたとかが無理。
やるならエディタソフトにレコーディングマクロ機能がないと厳しい。
自分がよくつかう構造化エディタでは無理と判明。
※構造化エディタはエディタとしての機能が弱い。
一つのテキストファイルをツリー形式で管理し、不要な部分を折りたたみできるのが
このソフトだけなのでこれを使っているけど不便を感じることも多い。
ツリー管理のとこだけ構造化エディタでエディタの中身は別ソフトみたいな組み合わせができたらいいんだけどなあ。
コメント