LoginSignup
44
42

More than 5 years have passed since last update.

誰でもできるようになる、やさしいVim入門

Last updated at Posted at 2014-02-09

はじめに

こんにちは。

私が Vim を真剣に使い始めて、まだそんなに時間が経っていません。

Vim の習熟曲線はとても急勾配であると言われます。

しかし、私は短期間のうちに、
標準的な他のエディタを使った場合と比較して、
およそ倍の速度でテキストを編集できるようになりました。

その方法を皆さんにもお伝えします。

タイトルに偽りはありません。

きっと、誰でもできるようになります。
むずかしくもありません。

ただ、指がつるまで反復練習をするだけです。

とても簡単です。

レッスン0

まず最初のレッスンを始める前に、前提となる条件を確認しましょう。

必須なのは、

  • タッチタイピング(ブラインドタッチ)ができること

これだけです。
できない人は回れ右して帰ってください。
最近は、Vim にこだわらなくても、いいエディタが沢山ありますよ。
Sublime Text なんて流行っているし良いんじゃないですか?
タッチタイプができない人は、そういうダサいエディタを使っていた方が幸せです。

レッスン1

Vim をテクるために

Vim をテクるためには、以下を繰り返すしかありません。

  • 便利な機能を知る
  • ひたすら反復して身体に覚え込ませる

さらに間が空くと忘れたりするので、定期的に復習する必要があります。
なんでこんな辛いことをしなくちゃいけないんだろう、と思います。

しかし、文句を言わずに部活だと思ってやるしかないのです。
前世の業だと思ってやるしかないのです。
俺が打ち続けなければ地球に巨大隕石が落ちる。人類のためにあと5回だけ頑張れ!
と考えながらやるしかないのです。

では、簡単なものを実践してみましょう。

プログラミングの用途で Vim を使う方が多いと思います。
まず、以下のソースを Vim にコピペしてください。

#include <stdio.h>

int main(void)
{
    printf("Hello world!");
    return 0;
}

では、このソースコードの編集をしてみましょう。
あ!ノーマルモードと挿入モードとかは把握している前提で進めます!

"Hello world!" を "The world!" に変えてみよう!

概要

ソースコード中の、"Hello world!" を "The world!" に変更します。
まず、gg と叩いて、ファイルの先頭にカーソルを持っていってください。

この、カーソルが先頭にある状態から、"Hello world!" を "The world!" に変える方法はいくつもありますが、
Vim を使う場合は、できるかぎり 「思考したこと=操作」 となるような操作となるよう意識すべきです。

つまり、頭のなかで、「カーソルを下、カーソルを下、カーソルを下、そして右」みたいな、
「目標をセンターにいれて某」みたいな思考はしないはずです。

思考をトレースしてみましょう。普通は例えば、

  • 5行目にダブルクォートでくくられた Hello world! があるようだね
  • そこの HelloThe に書き換えればいいんじゃないかな
  • よし変えた (この間約0.02秒)

とかになるかと思います。

それでは、上記の思考の流れをそのまま実行してみましょう。
記載されているものをそのままタイプしてください。

実践

  • 5行目に移動
5G
  • Hello を消すためにそこ(Hello の先頭)へ移動
fH
  • Hello を消して挿入モードIN
ciw
  • The を入力
The
  • 挿入モードを抜ける
<ESC>
  • おしまい

解説

上記の 実践 では、以下の操作を使いました。

G

前置した(先に入力した)行へジャンプします。
例えば 3G だと3行目に飛びます。
行ジャンプは、他に以下のコマンドでも可能です。

:5<Enter>

ちなみに、Vim では以下で簡単にコマンドのヘルプが参照できます。
とても素晴らしいヘルプがその場で確認できるので、
ググるより先にヘルプを見てみましょう。

:h G
G           [count] 行目の最初の非空白文字に移動します(行単位
            |linewise|)。
            カウントの前置がなければ最後の行に移動します。
            'startofline' がセットされていなければ同じ桁位置に移動
            します。
            G はジャンプモーション (|jump-motions|) です。

f

fに続いて入力した文字を、今いる行で右に向かって検索し、
見つかった位置にカーソルが置かれます。

ヘルプを見ておいてください。

:h f

c

c に続いて入力したモーションを削除し、挿入を始めます。
モーションというのは、その名の通り「動作」を意味します。
iw というのが、「カーソル位置にある単語を選択する動作」を意味するコマンドなので、
結果として、「カーソル位置にある単語が削除され、挿入を始める」という操作になります。

ヘルプもね。

:h c
:h iw

反復

では、ここで学んだ操作を指がつるまで繰り返してみましょう。

  1. gg
  2. fH
  3. ciw
  4. The<ESC>
  5. u (アンドゥ)

これから同じような場面では完璧にこなせるはずです。

補足

上記手順は、結構まわりくどいやり方でやってます。
もちろん、Hello をいきなり検索したり置換した方が早いです。

次回のレッスン

未定!!!!!!!

44
42
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
44
42