はじめに
情報通信システム工学科アドベンドカレンダー1日目です。
情報通信システム工学科3年の大木建人@2357giです。
今回は大学の授業で辛うじてプログラミング触ったことはあるけど、
後期から研究室配属されて本格的にプログラミングすることになりそう、やべーって学友に向けてのものとなります。
あとはだいたいプログラミング初心者のかた向けです。
本記事の内容は
プログラミングするときは、vim流入力をマスターしよう
というものです。
そもそも
プログラミングをするときにカーソル移動を頻繁にしますよね?
しかし、カーソル移動に十字キーを使うのはとてもナンセンスです。
なぜなら、人はブラインドタッチする際に人差し指をFとJに構えている(ホームポジションのことです。ブラインドタッチができない?結構。できるようになりましょう)のですが、十字キーで移動しようとするとどうしてもホームポジションから移動する必要が出てきてしまします。
一般的なホームポジション
自己流タイピングはダメ!パソコン初心者に教えたいタイピング習得のコツ | ぱそちき | パソコン初心者に教えたい仕事に役立つPC知識より引用
この画像の通りにキーボードに指を重ね、その後十字キーを操作しようとしてください。
試しに十字キーの→を押してみてください。
はい。
無駄がありますよね??
小指で十字キーをさわりました?
それとも小指以外で十字キーを触りに行きました?
ホームポジションから右手がズレましたよね?
これではまたホームポジションに戻らなければいけません。
ましてや十字キーが独立しているキーボードや、十字キーの形がいつもと違う形だったりしたら目も当てられません。
ホームポジションから動かずにカーソル移動できればいいのに・・・・十字キーがホームポジションにあればいいのに・・・・
大丈夫、それは全て可能です。
そう、Vimならね!
ババーーーーン
Vimの仕組み、どうやって移動するのか
Vimはカーソル移動がH, J, K, Lで可能となっています。
つまり、ホームポジションから動かずにカーソル移動が可能となっております。
HJKLを指で押してみてください。
ここでカーソル移動ができるのです。もう右下にあるナンセンスな矢印キーは外しても構いません。
HJKLで移動するなら文字が打てないじゃんと思った貴方、Vimは素晴らしい解決策を用意してくれています。
それは、モードという概念です。
モードとは
Vimにはモードという概念があり、ユーザーは各モードを自由時際に飛び回り思いのままにコーディングして行きます。
HJKLでカーソル移動ができるのは「ノーマルモード」であり、
文字を入力する際にはi
や I
もしくは a
, A
, o
, O
, s
, S
のコマンドをノーマルモード上で打ち込むことにより「挿入モード」へ移行することができ、挿入モード中で自由に文字を打つことが出来ます。
「ちょっと待って!コマンド打たなきゃ文字が打てるようにならないの?!しかも文字打てるようにするだけなのにiとかIとかaとかAとか....コマンドの種類多すぎ!!!」
そう思うと思ってました。
そうです。vimは文字を打つときに一度文字を打てるモードにするためのコマンド
を打たなければいけないのです。
これではHJKLでカーソル移動ができる嬉しさより、文字入力する前にコマンドを打たなければいけない煩わしさの方が上回ってしまいます?
安心してください。
Vimは入力モードに移行する際の選択肢を豊富にすることにより、この入力モードに行こうする際の煩わしさもVimの利点へと昇華させているのです。
コマンドによって挿入モードへ移行できる喜び
例えば、以下のような文章があったとします。数字は行番号、| はカーソルの位置です。
1 加藤くんは 春菜さんのモノマネ|が とても上手です。
2 面白いですね。
いいですね。
ですが、加藤くんは春菜さんのモノマネよりも兵藤さんのモノマネの方が上手です。
なので、1行目と2行目の間に加藤くんは 兵藤さんのモノマネも とても上手です。
という文章を追加するとします。
1 加藤くんは 春菜さんのモノマネが とても上手です。
2 加藤くんは 兵藤さんのモノマネも とても上手です。
3 面白いですね。
このような文章にしたいです。
十字キーなやり方
今日までのはあなたは、カーソル移動を十字キーで行うことを強いられています。
十字キーでどのようにカーソルを移動させ文字を入力するか考えてみましょう。↓(十字キー下)
を押して←
を何回か打ち込み(もしくはcmd + ←などで)行頭まで移動し、
文章を打ち込んで、
改行して
文章の追加としますか?
今、あなたはカーソル移動の為だけに何回キーを押し込みました??
vimなやり方
Vimではo
を押します。
すると、カーソルが以下のように移動します。
1 加藤くんは 春菜さんのモノマネが とても上手です。
2 |
3 面白いですね。
現在のカーソル行から一行下に、自動で改行しつつカーソルが移動します。
あとは文字列を打ち込むだけです。
「便利!」と思いました?
このような「便利!」がVimには星の数ほど詰まっています。
また、o
は下に改行して挿入でしたが、O(大文字のo)
は上に改行して挿入です。
行頭や行末に一瞬で移動して挿入モードになるコマンドI
, A
だったり、
他にも現在のカーソル位置から行末まで削除しつつ挿入モードになるコマンドC
だったり、
単語の上にカーソルがある場合単語を削除して挿入モードになるコマンドdiw
だったり、
コマンドをさっと入力するだけで済みます。
普通の入力方法で上記のことをする場合を考えてみてください。
何回キーを入力したか、数え切れないほど煩わしい操作をしていますよね?
Vimなら一瞬です。
Vimなら、一瞬です。
vimを使ってみよう!
ここまで読んでくれたあなたはきっといますぐVimを使いたくて仕方がない、
それかもしくは手元のターミナルで$vi
と打ち込み上記のコマンドを試し、感動した方だと思いますが、
今回はプログラミング初学者の方向けなので、 VisualStudioCodeのVim拡張機能を用いてvimを体験したいと思います。
-なぜvimではなくVScodeを使うの?
私はvimはプログラミング初学者に触らせるには少々不親切だと思っています。
なので、今回は「VisualStudioCode」と言う優秀なIDE(総合化初環境)を用いてIDEの高性能なサポートも受けつつ優秀なVimの入力を体験していただきたいと思っています。
環境をセットアップ
まずはVisualStudioCode(以下VSCode)を導入します。
VScodeとはMicrosoft製のオープンソースの総合開発環境であり、
入力補完やファイル管理などが高水準で纏まっています。
また、ユーザーが開発した拡張機能も充実しており、
今回はVSCode上でVimの入力方法が入力できる「vim」と言う拡張機能を用いてVimを導入していきたいと思います。
1. VSCodeの導入
Visual Studio Code - Code Editing. Redefined
上記のサイトからインストーラを用いインストールします。
2. VScodeに拡張機能を導入
左側メニューからEXTENTONS、Vimで検索し、導入します。
再起動し、EXPLORERから適当なファイルを開いてみます。
ようこそVimの世界へ。思考のスピードでのコーディングを楽しみましょう。
終わりに
今回はVimの魅力と簡単なコマンドの紹介、VSCodeを用いたVim入力の初歩的なことを解説しました。
こちらにコマンド等がいい感じに纏まっているのでオススメです。
Vim幼稚園からVim小学校へ - Qiita
次回は@hnk1031で「女子大生っぽいこと」だそうです。
女子大生っぽいこと・・・楽しみですね。