133
123

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Vimを体系的に学ぶつもりのない人のためのVim講座

Last updated at Posted at 2014-03-18

よろしい、あなたはたまにVimを使う必要があるんだけど、いつもわけがわからず、なんとかしてインサートモードに入るので精一杯。で、Vimを終了させられず、やり方をググっている、と…そんなあなたのためにこの記事を差し上げましょう。

最低限覚えてほしい3つのコマンド

  • i => インサートモードに移行
  • esc => インサートモードから脱出
  • :wq => 保存して終了

そう、たったこれだけ。
…なわけないでしょ!
確かに、上の3つのコマンドは必ず使うものです。しかし、iescを往復している限り、あなたは永久に進歩しません。

インサートモードは最悪

大事なことなので2回言います、 インサートモードは最悪です。インサートモードではVimは単なるメモ帳になってしまいます。どうせVimを使うなら、Vimらしく使ったほうが精神衛生上よろしいはずです。

ノーマルモード

名前の通り、普通、Vimはノーマルモードになっています。初級者以上は、できるだけこのモードから離れません。文字を入力するときでさえノーマルモードから行おうとするようになれば、中級者といえると思います(筆者はこの段階です)。
Vimの敷居を上げているのがこのモードなのですが、このモードで最低限カーソル移動ぐらいは行う必要があります。

最低限覚えてほしい カーソル移動のためのコマンド

【追記】s/3つの//g

バッファ(Vim用語では「ファイル」の意)を動き回る上で、以下のコマンドはとても便利なのでぜひ覚えましょう。

  • gg => 最初の行に移動
  • G => 最後の行に移動
  • w => 次の単語に移動
  • b => 前の単語に移動
  • W => 空白を挟んで次の単語に移動
  • B => 空白を挟んで前の単語に移動
  • f[char] => 次の[char]に移動

最低限覚えてほしい インサートモードに入るための3つのコマンド

iだけでインサートモードに入ろうとするのが入門者です。初級者以上は、以下の3つのコマンドを使いこなします。

  • A => 行末に移動してインサートモード
  • S => カーソルがある行を削除してインサートモード
  • o => 1行下に移動してインサートモード

書くべきことを書き終えたら、さっさとescしましょう。

最低限覚えてほしい 効率的な編集のための3つのコマンド

以上の知識があれば、バッファ内を移動してテキストを挿入することはかなり効率的に行えます。が、それだけではよくあるケースに対応できません。例えば、文字列のリテラルを編集する場合、シングルクォートの中にあるテキストを削除し、別のテキストに置換しなくてはなりません。普通はちょっと面倒なこんな仕事も、Vimならあっという間です。

  • ciw => カーソル上の単語を削除してインサートモード
  • ci' => シングルクォート内のテキストを削除してインサートモード
  • C => カーソルより右にあるテキストを削除してインサートモード

次回予告

実はまだ一回もEXコマンド(:を入力するとカーソルがウィンドウ下に吹っ飛ぶあれ)を使っていないので、それの紹介をできたらします。あとサーチした上でnでジャンプとか、ヤンクとか、ビジュアルモードで一括変換とか、まだまだネタはたくさんあるよ!

133
123
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
133
123

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?