【プログラミング初心者向け】矩形選択を使いこなして効率良くテキストを編集する

## 問題

次のようなテキストがあります。

```
450 | 439970
450 | 486900
450 | 486963
450 | 499983
450 | 499987
450 | 500004
675 | 504332
444 | 504338
450 | 513123
450 | 513125
450 | 513177
```

これを **できるだけ短い手数で、できればマウスを使わずに** 次のように編集してください。
（右の列の数字だけをカンマ区切りで1行にまとめる）

```
439970, 486900, 486963, 499983, 499987, 500004, 504332, 504338, 513123, 513125, 513177
```

みなさんだったらどうしますか？今からやってみてください。
なお、使用するエディタは自由です。

## 解答例

（スクロールすると僕の回答が表示されます）
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
僕はVimを使ってこんなふうに編集しました。
![Myi8oSorhb.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/7465/f52d576d-f7f6-8e39-6323-3901834c1b19.gif)

以下で上の動画の操作手順を説明します。

## 操作手順の解説
"Ctrl-V"で矩形選択を開始します。さらに、"t4"で「"4"の1文字手前」まで選択します。
![Screen Shot 2022-01-08 at 9.31.33.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/7465/ce665bfd-7bfc-1303-b53e-4e7d2627c625.png)

"Shift-G"でそのまま最下行まで矩形選択します。
![Screen Shot 2022-01-08 at 9.32.55.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/7465/46d582a7-e519-f8ff-945f-5fd60a566a53.png)

"x"で選択部分をまるっと削除します。
![Screen Shot 2022-01-08 at 9.33.42.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/7465/ec826d2f-5315-0494-a69e-81f9e2dffd26.png)

"Ctrl-V"で再度矩形選択を開始し、"$"(USキーボードならShift-4)で行末まで選択します。
![Screen Shot 2022-01-08 at 9.36.12.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/7465/efe593f8-5ac6-71c7-dc6f-bcc068f1b8cb.png)

"Shift-G"で最下行まで選択し、"k"でひとつ上の行に戻ります。
![Screen Shot 2022-01-08 at 9.38.56.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/7465/62e98d60-516f-ab9c-ee84-090ee981559d.png)

"Shift-A"で行末からインサートモードを開始し、","を入力します。そして"ESC"でインサートモードを終了します。
これで最下行以外の行末にカンマが入ります。
![Screen Shot 2022-01-08 at 9.41.15.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/7465/6b2bf517-40fd-6593-7fa2-f426125ec538.png)

"Shift-V"で1行全体を選択します。
![Screen Shot 2022-01-08 at 9.42.45.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/7465/ef72080c-3273-be21-a839-81a4e8b051be.png)

"Shift-G"で最下行まで選択します。
![Screen Shot 2022-01-08 at 9.43.45.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/7465/60af6884-9c49-15b6-9c8b-a83a3559672e.png)

"Shift-J"で行を連結します。これで終了です！
![Screen Shot 2022-01-08 at 9.44.44.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/7465/e4f0276b-2dda-6fb9-145f-97ac43fb85a6.png)

## プログラミング初心者のみなさんに伝えたいこと
こういったテキスト編集をする場合、プログラミング初心者のみなさんはおそらく、矢印キーやマウスを何度もカチカチ・ポチポチして編集していると思います。

最初からすぐにここまでスマートにテキスト編集しろとか、今すぐVimに乗り換えろ、というつもりはありませんが、最低限、 **矩形選択（ブロック選択）** は使いこなせるようになっておいてください。これを使えるか使えないかでかなりテキスト編集の効率が変わってきます。上で説明した手順の中でも矩形選択が2回登場しています。

Vimでなくてもほとんどのテキストエディタで矩形選択ができるようになってるはずです。たとえば、以下のサイトではVS Codeで矩形選択する方法が説明されています。

https://buralog.jp/visual-studio-code-box-select/

そして **余裕があればVimのキー操作を覚えてください。** 上の解説を見てもらえればわかるとおり、僕は一度もマウスに触れずにテキスト編集をしました。また、矢印キーも使っていません。
Vimの操作は慣れるまでは少し時間がかかりますが、一度操作に慣れてしまえばサクサクとテキストを編集できるようになります。

Vimをこれから始める人は僕が昔書いたこちらの記事を参考にしてみてください。

https://blog.jnito.com/entry/20120101/1325420213

https://qiita.com/jnchito/items/57ffda5712636a9a1e62

必ずしも今使っているエディタを捨ててVimに乗り換える必要はありません。
たとえばVS Codeでもプラグインを使えばVimのキーバインドが使えるようになります。これでも十分です。

https://marketplace.visualstudio.com/items?itemName=vscodevim.vim

さあ、エディタを使いこなして、光の速さでコーディングできるようになりましょう！