◆ ゲームをしているかのような華麗な十字キー捌きを

質問です

テキストエディタでこんな状態だったとします
aaaaaaaaa
bbbbb|bbbbb
ccc
ddddd
「|」のところがカーソル位置です
行末まで消したい・選択したいときはどうしますか?


Shift-End が正しい解答なのかもしれません
ですが End って押しづらいですし キーボードによっては Shift キーと一緒に押せないものもあります
Function キーのように Shift キーと何かをおすことで End となるキーボードもあります
ノートPCならしかたのないところです

独自にショートカットキーを割り当てていたり 使ってるエディタでデフォルトでそういう機能があるかもしれませんが 別のエディタを使わないといけない状況や 他人のPCで操作しないといけないときがあるかもしれないです
そういうときはどうしますか?

こたえ

一行を選択したい時の方法がヒントになります
選択したい行の先頭にカーソルを持ってきて Shift キーを押しながら 「↓」 を押すと 一行が選択されます
改行を含めたくない場合は そこから 「←」 を押してカーソルを 行末に移動させます

コレと同じことを考えます
Shift キーをおしながら 「↓」 を押してもそのあと b の行の最後にカーソルを持ってこないといけないです

今の状態はこうなってるはずです
aaaaaaaaa
bbbbbbbbbb
ccc
|
ddddd
ここから 「→」 「↑」 「←」と入力します
すると カーソルが d の行の先頭 c の行の先頭 b の行の行末の順に移動します
行末から 「→」 を押すと次の行の先頭に行くこと を利用します
これがすごく重要です



次は 行の最初まで選択したい時です
aaaaaaaaa
bbbbb|bbbbb

ddddd
Shift キーを押しながら 「↓」 「↑」 で良さそうに思えるかもしれませんが Windows のメモ帳みたいなダメソフトでもない限り 上下移動では左右の位置が保存されてるので 「↓」で下の行に移動しても 「↑」で戻ってくるとカーソル位置が一緒になっています

「↓」 「→」 「↑」 「↑」 が正しいコマンドです
下の行に移動した後に一度左右で移動してしまえば左右の位置は保持されなくなります
この場合は d の行にいきます
そのあと2回上に移動すると b の行の最初にカーソルが来ます


では 次はこんな場合です
aaaaaaaaa
bbbbb|bbbbb
ccccccccccccccccc

eeeeeeeeee
c の行がカーソル位置より 右方向にあるので 「↓」 を押したときに 行末にカーソルが来ません
そういうときは 行末に来るまで 「↓」 に移動します
今回は
「↓」 「↓」 「→」 「↑」 「↑」 で行の先頭までの選択
「↓」 「↓」 「←」 「↑」 で行末までの選択になります

下に移動しても 行末まで来なかったらどこまでも下に移動続けることになりますけど たいてい コーディングでも ただのメモでも 5行に1行くらいは空行を入れると思いますし大丈夫でしょう


上方向という手もあります
aaa
bbbbb|bbbbb
ccccccccccccccccc
dddddddd
eeeeeeeeee
「↑」 「→」 で行の先頭まで
「↑」 「→」 「↓」 「←」 で行末までの選択です

いまのカーソルの左右の位置より 行末が左側にある行へ早くいける方を探すのがコツです


どうでしたか?

方向キーを押す量多いとか 普通に Shift-End でいい とかショートカットキー設定するとか思う人もいるでしょう
ですが 慣れると End キーに手を伸ばすより圧倒的に早いです
キーは4つ5つ押すかもしれませんが 十字キーなので一瞬です

ゲームでのコマンド入力だと考えれば すごく簡単なものです
メニュー画面での操作とか考えると 十字キーでさっと移動してますよね


私の使ってるキーボードは End を簡単に打てるものじゃないですし ショートカットキーが設定できないシンプルなエディタを使っていたころに 最初は Shift キー押しながら「←」や「→」を連打していて 同じキーずっと押すのは面倒だし辛いと思っていて いつの頃からか無意識にこの方法で移動していました

今ちょうど記事書くために使ってる web上のエディタ(textarea や divのcontenteditable)では エディタで設定しているショートカットは使えませんし この方法が役立っています
知っておくと役立つ時がきっとあるはずです

ぜひ使ってください!