Vimの基本操作をVimtutorで学びながらVimで記録してみた。

今回はVimというエディタについて学んだことをVimを使って記録してみたいと思います。
Vimはエディタということですが、今回Happiness Chainので学ぶまで私は触ったことがありませんでした。

少し調べてみると、難しいという意見やとても高性能で便利という意見まで様々です。
要するに、入り口のハードルが高く操作に慣れるまでは難しいけれど、慣れてしまったらとても高性能で使いやすいということなのでしょう。
慣れるまでは触り続けるしか方法がないので、少しずつ継続していきたいと思います。

Vimtutorを触ってみる

さて、Vimについて学ぶにはVimtutorで学ぶのが効率がいいようです。 早速Vimtutorを起動させます。

$ vimtutor

これでVimtutorが起動できます。

Vimtutorを起動すると7つのLessonがあります。

今回は1つずつ確認していきたいと思います。

Lesson1

  1. カーソルの移動
     1.  (h) 左に移動、(j)下に移動、(k)上に移動、(l)右に移動
    
  2. Vimの起動
    1. Vimを起動するにはターミナルでvim FILENAMEと入力し<enter>を押します。
  3. Vimの終了
    1. Vimを終了する際、全ての変更を破棄する場合は<ESC> :q! <ENTER>を押します。
    2. 変更を保存するには、<ESC> :wq <ENTER>を押します。
  4. 文字の削除
    1. カーソル上の文字を削除するにはxを押します。
  5. テキストの挿入と追加
    1. iでテキストの挿入ができるようになります。終了する際は<ESC>を押します。
    2. Aでテキストを追加することができるようになります。終了する際は同じく<ESC>をクリックします。

note:<ESC>を押すと、ノーマルモードになるか、不要なコマンドがキャンセルされます。

Lesson2

  1. カーソルから次の単語までを削除するには、dwを入力します。
  2. カーソルから語尾までを削除するには、deを入力します。
  3. カーソルから行末までを削除するには、d$を入力します。
  4. 行全体を削除するには、ddを入力します。
  5. 動作を繰り返すには繰り返す回数とwを入力します。
    1. 2回繰り返すには2w
  6. フォーマットを変えるコマンド
    1. operator -> dで削除などの操作をするためのものです。
    2. [number] -> 特定のmotionを繰り返すためのものです。
    3. motion -> テキスト上を移動する動きを指定します。
      1. wで文字の移動
      2. eで文字の最後に移動
      3. $で行の最後に移動
  7. 行の最初に移動するには、0を入力します。
  8. 動作の取り消し
    1. 直前のアクションを取り消すには、uを入力します。
    2. 行で行った全ての変更を取り消すには、Uを入力します。
    3. 実行した取り消しを取り消すには、CTRL-Rを入力します。

Lesson3

  1. 直前に削除したテキストを復元させるには、pを入力します。
  2. カーソルが示している文を置換させるには、rを入力します。
  3. 変更を指示するoperatorはmotionを組み合わせることで移動ができます。
    1. ceと入力すると、カーソルから語尾へ移動できます。
    2. c$と入力すると、行末に移動できます。
  4. フォーマットの変更をするには、c [number] motionと入力します。

Lesson4

  1. CTRL-Gでファイルのステータスとフィイルの中での場所を表示することができます。
    1. Gでファイルの最後に移動します。
    2. number Gでnumberで指定した行に移動します。
    3. ggで最初の行に移動します。
  2. フレーズの検索と移動
    1. フレーズの後に/を入力すると、そのフレーズまでの中でフレーズを検索します。
    2. フレーズの後に?を入力すると、そのフレーズの後で、フレーズを検索します。
    3. 検索後に同じ方向で次に移動する場合はnを入力、逆方向に移動する場合はNを入力します。
    4. CTRL-Oで古い場所に移動、CTRL-Iで新しい場所に移動します。
  3. %と入力すると([{などに一致する),],}の場所にカーソルが移動します。
  4. 様々な置換方法
    1. :s/old/newで、直近のoldからnewに置換します。
    2. :s/old/new/gで、全てのoldをnewに置換します。
    3. #,#s/old/new/gで、#行から#行目までを指定して、oldをnewに置換します。
    4. :%s/old/new/gで、ファイル内のoldをnewに置換します。
    5. :%s/old/new/gcで、置換する際に確認をします。

Lesson5

  1. :!コマンドの使い方
    1. :!ls(Windows:!dir)で現在のディレクトリを表示します。
    2. :!rm FILENAME(Windows:!del FILENAME)でファイル名を削除します。
  2. :w FILENAMEで利用中のVimファイルをFILENAMEとしてディスクに書き込みます。
  3. 選択した範囲のみを保存するには、vでスタート位置を選択し:で終了位置を選択します。そのまま:w FILENAMEでFILENAMEとして選択した範囲を保存します。
  4. :r FILENAMEと入力すると、入力した際のカーソルの位置から下にFILENAMEで検索したファイルの内容を貼り付けます。
  5. :r !lsとすると入力したカーソルの位置から下にlsコマンドの結果を挿入します。

Lesson6

  1. 行の追加とインサートモードへの変更
    1. oで現在のカーソルの位置から下に行を追加してインサートモードになります。
    2. Oで現在のカーソルの位置から上に行を追加してインサートモードになります。
  2. テキストの挿入
    1. aでカーソルの後にテキストを挿入します。
    2. Aで行の最後にテキストを挿入します。
  3. eコマンドで言葉の最後に移動します。
  4. yでコピー、pでペーストします。
  5. Rでリプレイスモードになります。リプレイスモードを終了するには<ESC>を押します。
  6. ':set'オプション
    1. :set icで大文字小文字を区別せずに検索します。
    2. :set isで検索中に検索したフレーズを強調します。
    3. :set hlsで検索で一致したフレーズを全てハイライトします。
  7. オプションをオフにするにはnoをつけます。

Lesson7

  1. helpを表示するには、:helpを入力します。
  2. コマンドのhelpを表示するには、:help cmdを入力します。
  3. CTRL-Wを入力すると別のWindowに移動します。
  4. :qでhelpを閉じます。
  5. コマンドを入力する際、CTRL Dを入力すると利用可能な補完機能が表示されます。
    1. <TAB>を押すと、1つの補完機能が候補として表示されます。

終わりに

以上が、Vimtutorで学べる内容です。

実際に動かしならがでないとイメージしずらいことも多いかと思います。

またVimtutorで紹介されている内容が多岐にわたるので一度で覚えることは難しいでしょう。

機能によって実際に利用する頻度も異なると思いますので、必要なコマンドから覚えていけばいいように思います。

また今回はVimtutorで学んだことをVimmarkdownで記録してみました。 作業した内容としては下記の流れです。

  1. Vimtutorを読んで内容を理解する
  2. Vimでファイルを起動し、動作を確認する
  3. markdownで記録する

正直とても時間がかかりましたが、勉強にはなりました。

vimで記録したVimtutorの内容