ドットインストールでVimに再入門してみた

少し前に今使っているIDEのエディタをVimに変更したが,Vimの機能を使いこなせていない感が否めなかったので改めてドットインストールで再入門することにした.今回は自分が知らない・使っていないコマンドについてまとめてみる.

https://dotinstall.com/lessons/basic_vim

Vim入門(全18回)

  • 01 Vimを使ってみよう
  • 02 Vimのモードについて
  • 03 ファイルの保存,読み込みについて
  • 04 移動をマスターしよう(1)
  • 05 移動をマスターしよう(2)
  • 06 ビジュアルモードについて
  • 07 カット,コピー,貼付けについて
  • 08 検索をしてみよう
  • 09 置換をしてみよう
  • 10 操作の取り消しをしてみよう
  • 11 ウィンドウの分割をしよう
  • 12 タブを使ってみよう
  • 13 直前の操作を繰り返す
  • 14 インデントを揃えよう
  • 15 補完機能を使ってみよう
  • 16 矩形選択後に編集する
  • 17 テキストオブジェクトを扱う
  • 18 便利な設定を使う

03 ファイルの保存,読み込みについて

  • :w ファイル名で別名として保存できる.
  • :e ファイル名で別ファイルを開くことができる.相対パスも使うことができるので他のディレクトリのファイルも柔軟に指定可能.

05 移動をマスターしよう (2)

  • ノーマルモードになり,f + 任意の文字でその行に指定した文字があればそこに移動する.;で順方向に再検索,,で逆方向に再検索できる.
  • ノーマルモードになり,括弧にカーソルを合わせて%を押すとその括弧に対応するもう片方の括弧へ移動する.始めの括弧,閉じ括弧どちらでも使うことができる.

08 検索をしてみよう

  • ノーマルモードになり,ある単語にカーソルを合わせ*を入力するとその単語について順方向に検索してくれる.#を入力すると逆方向に検索する.

09 置換をしてみよう

  • :s/置換前文字列/置換後文字列でカーソル行を対象にヒットした置換前文字列を置換後文字列に変換する.ただし,置換されるのは最初にヒットした文字列のみ.
  • :s/置換前文字列/置換後文字列/gでカーソル行全体を対象に置換する.
  • %s/置換前文字列/置換後文字列/gでファイル全体を対象に置換する.%がファイル全体を表している.
  • %s/置換前文字列/置換後文字列/gcのようにconfirmを意味するcをつけることでインタラクティブに置換する.

11 ウィンドウの分割をしよう

  • :spで上下にウィンドウが分割され,:vsで左右にウィンドウが分割される.
  • ウィンドウ間を移動するときはノーマルモードCtrl+wを二回押せばよい.複数画面を開いている場合は連打で移動できる.
  • ウィンドウを閉じる時は:closeを入力する.

12 タブを使ってみよう

  • タブのように新規で開きたい場合は:tabnewと入力する.開きたいファイルが決まっている場合は:tabe ファイル名と入力することで指定したファイルが新規タブで開く.
  • タブ間の移動はノーマルモードgt
  • タブを閉じる時は:tabclose
  • Vimを立ち上げる時にtabで開きたいときはコンソールからvim -p ファイル1 ファイル2
  • すべてのタブを対象に置換をしたいときはtabdo %s/置換前文字列/置換後文字列/g

13 直前の操作を繰り返す

  • ノーマルモード.を押すと直前の操作を繰り返す.例えば3ddで3行消したあと他の行で.を押すとその行以降を対象に3行が削除される.

14 インデントを揃えよう

15 補完機能を使ってみよう

  • 入力モードで変数名や関数名を入力している途中でCtrl + nを押すと候補が表示される.

17 テキストオブジェクトを扱う

<title>タイトル</title>
  • 上記のテキストにカーソルを合わせノーマルモードcitと打つとタイトルの文字が消え,その位置で挿入モードになる.
  • citcはアクションを表す.cの場合は削除して挿入モードに変更.dは削除,yはコピーなど他のアクションに置き換える事も可能.
  • citiは範囲を表す.iはタグの中身が範囲でaに置き換えるとタグ全体が範囲になる.上記の場合でaにするとごと消えて挿入モードになる.
  • cittはターゲットを表す.tの場合はタグに対して行う.他にも")]などがある.

18 便利な設定を使う

  • :syntax onシンタックスハイライトが実現できる.:syntax offで元に戻す.
  • :set tabstop=4でインデントタブの長さを変えることができる.
  • :set ignorecaseで大文字小文字を無視した検索ができる.:set noignorecaseで元に戻す.

まとめ

  • ドットインストールでVimを再入門した.
  • 半分弱くらいは使っていない・知らない機能だったので普段から使ってもっと効率的にVimを使えるようになろうと思った!また,普段使っている技術を今一度ドットインストールで見返すとためになることがあるかもしれないと感じた.