今日は基本的なところから、僕が普段よく使う便利なコマンドをまとめてみました。ここまで知っててかつ使いこなせてれば「Vimでコーディングしてます」と胸を張って言えるのではないでしょうか。実践的なコマンドに行く前にとりあえず基本的なところから。入力モードに切り替え(コマンドモード中に)iもしくはaiはカーソル上の前から入力モードになり、aはカーソル上の後ろから入力モードになります。※慣れるまではiだけ使っておけばよいかと。[でも入力モードからコマンドには切り替えられますが、vim初心者な方はescボタンで抜けられるということを覚えておけば問題ないです。僕もほぼescで抜けてます。左に移動h下に移動j上に移動k右に移動l実用編さて、ここから僕がコーディング中によく使う便利なコマンドの紹介です※指定がない場合はすべてコマンドモード中に入力するという前提で書いていきます。行の先頭から入力したいI(大文字のi)カーソルを先頭に移動させた上で自動的に入力モードになります。ケースとしては、カーソルが行の真ん中ぐらいにあるところから一気に行の先頭に何か文字を打ちたいときに使えます。行の末尾から入力したいAカーソルを末尾に移動させた上で自動的に入力モードになります。これも行の真ん中から一気に末尾に入力したいときですね。カーソル上の文字を1文字を削除して入力モードに移りたいsたまに使います。1文字だけ書き換えたいときとか使えたりしますが、1文字置換するだけなら、rコマンドのほうが有能です。(を押して置換後の文字を入力)地味ですがかなりの頻度で使います。(を押して置換後の文字を続けて入力。終わったらescを押す)REPLACEモードに移り、入力した文字にどんどん置換していきます。「便利じゃん」と思われそうですが、僕はあまり使いません。別のコマンドのほうが個人的には便利なのです。応用編として後ほど紹介しますが、ciwciWといったコマンドのほうが便利だったりします。文字を削除したいxよく使いますね。大文字のほうはカーソルがある行の上に空白行を入れて入力モードになります。※改行だけをするコマンド(入力モードにならない)は実は知らなかったりします。誰か知ってたら教えてください。小文字のiのときはカーソルのすぐ手前、大文字のIのときは先頭から小文字のaのときはカーソルのすぐ後ろ、大文字のAのときは末尾からといった形で大文字と小文字でできることは同じなんだけど微妙に動きが違うコマンドがあるというのを覚えておくとこれから書いていくコマンドも結構覚えやすいかと思います。行を一気に削除したいdd行を丸っと消したいときに使えます。deleteのdと覚えてます。行をコピーしたいyyこちらは行を丸っとコピーしたいときですね。yankのyと覚えてます。※yank(ヤンクについては後述します)行を一気に削除してそのまま入力モードに移りたいccもしくは、S(大文字)基本的にはccのほうを使ってます。・ccは削除した行がヤンクされる・Sはヤンクされないです。「この行を消して別の行に移動させたい」といったときはddで消してpで貼り付けるといった形でよく使います。上記で言っているコピーは、厳密にはヤンクするという表現が正しいです。cでコピーした場合とは違うという意味です。ヤンクはvimのメモリ上に保管しているといった理解で良いかと。間違えた操作をやり直したいu間違えてddで行を消してしまったときや、入力モードにならずにソースコードを貼り付けてわけがわからなくなったときに使えます。undoのuと覚えるといいですね。ソースを書き換えて保存して(ファイルは閉じず)に別窓でプログラムを実行して動作を確認して、またもとに戻す。みたいなことするときによく使います。ruでやり直したけど、やっぱり前ののほうがよかったなってときに使います。redoのrと覚えましょう。これはctrlと合わせて押すということに注意を。yにあたるのかな?(エディタによってはできたりできなかったり)行の先頭にカーソルを移動したい0(数字のゼロ)か^でいけます。両方共覚えておきましょう。行の末尾にカーソルを移動したい$です。先頭に移動するやつもそうですが正規表現を触ったこと方であればしっくりきますね。ファイルの先頭行に飛びたいgg割りと使います。覚え方は微妙ですが、よく使うので覚えておきましょうwファイルの末尾に飛びたいGこれも割りと使います。僕もggとGどっちがどういう意味かは覚えていません。コーディングとかしてて先頭行きたいなって思った時とりあえずggがGを押してみて確認することがほとんどです。何が言いたいかって細かくは覚える必要はないんやでってことです。確認してるぐらいです。ビジュアルモードに移るvビジュアルモードに移った後に、カーソル移動させることでいわゆる「選択」ができます。これ単体でどうこう便利ということは無いのですがここまで紹介したコマンドと合わせて便利です。選択した後に、xを押すことで文字が削除されたり、sであれば削除して入力モードに移ります。Vでカーソル上の行を一気に選択できますこの状態でカーソルを上下に移動させれば複数行を一気に選択できて、dで消したりできます。(ビジュアルモード中だとddではなくdでいけるんですよね)yとかcとも組み合わせるとわりと便利です。「ここがコードがよろしくなさそうなんですけど」とか言うときに、Vで選択して見えやすいようにしたりします。単語単位でカーソル移動したいw(右側に移動)b(左側に移動)単語単位で移動が可能です。hと押すと一気にchatのhの位置まで移動ができます。月に一回ぐらい使うかもです。fちまちまとjを連打してスクロールするより格段に早いです。forwardのfで覚えてます。え?一気にスクロールされてしまうのはちょっと嫌?じゃあ次のコマンドです。dこれは半分ずつ下にスクロールしてくれます。downのdですかね。fもdも結構使うので覚えておくと便利です。e普通にjを押すとカーソルを下まで移動させないとスクロールできませんが、これを使うとカーソルがどこにいてもその場で下にスクロールできます。使用頻度としてはあまり多くないです。bちまちまとkを連打してスクロールするより格段に早いです。backのbで覚えてます。uこれは半分ずつ下にスクロールしてくれます。これらも割りと使いますね。yほぼ使わないです^^;理由は多分ctrlとyが離れているからだと思います。お好みで【tips】ここで紹介したスクロールコマンドの他にも、ztzzzbとかあるんですけどほぼ使うことはないので興味があったら調べてみてください。保存してファイルを閉じるZZでいけるのです。:wqだと両手を使う必要がありますがZZだと左手だけでいけます。PlayerでCentosとか入れてvimでファイル編集して保存しようとすると、コロンの入力の仕方がわからなくてググるのもめんどくさいときはZZで済ませることができて便利かもです。ここまでのことが使えれば初心者卒業?結構な数紹介してきましたがようやく脱初心者といったところです。(vimは奥が深い・・・)というわけでここから更に便利な使い方を紹介していきます。Gという順番でキーボードを押すとファイルを空っぽにできます。(削除モードになっているため全行が削除される)もちろんこの作業の後に、uを押せば一瞬で元通りです。Gで削除してブラウザをリロードさせて画面が白くなったりしたらuでもとに戻して作業に入るってことたまにします。単語を丸っと削除したいここはvimでコーディングしていく中でかなり重要なところです。文字数多めで書いていきます。abcdefgという文字列があり、eのしたにカーソルがあって、abcdefgだけを消したい場合ちょっと面倒ですよね。するといい感じで単語を消してくれます。wとかもいけるんじゃない?と気付くんじゃないでしょうか。dではなくcでやれば、消した後に入力モードになります。abcde.fghijkという単語があるときにeの上で上のコマンドを実施しても、.fghijkという状態になってしまいます。最後のダブリューを大文字にすることでガツンといけます。この次に紹介するやつもかなりいけてます。カッコやダブルコート、シングルコートで囲われた文字列を消したい"genmaitya,mintia,iphone"という文字列があったとして、中身をごそっと消したいときや編集したいときありますよね。"でダブルコーテーションの中身を削除できます。cであれば削除して入力モードになります。