ツヨシのブログ

技術的な事とか日常の事とか徒然なるままに

Vimコマンドをまとめてみて、高速に編集ができるようになることを希望してがんばる忘備録

エンジニアたるものテキストエディタはこだわりたい物。エディタはいろいろとありますがVimを使ってみたい。Vimを使って高速にソースコードを編集していく姿は憧れます。 ただ、Vimは癖があり使いこなせるようになるまで時間がかかります。覚えるコマンドが色々とあり、これも大変です。複数のコマンドを華麗に使いこなすことで高速に編集ができます(多分)。

とりあえず導入してみたものの、まだまだVimのコマンドはうまく使いこなすことができず、なかなかソースコードを高速に編集できません。 ※そんなにソースコードを書くことがないのも問題ですが。 Vimは慣れが必要かと思いますので、たくさんあるコマンドを覚えて行く必要があります。そのコマンドの忘備録のためチートシートとしてまとめてみました。

移動

画面の移動

  • gg:先頭へ
  • G:一番下へ
  • Ctl+f:1画面下へ移動
  • Ctl+b:1画面上へ移動

単語の移動

  • w:1単語次へ移動
  • b:1単語前へ移動

行の移動

  • $:行の最後に
  • ^:行の先頭に移動

キャラクタの移動

  • f+文字:任意のキャラクタへ移動
  • ;:次のキャラクタへ移動
  • %:[],(),{}の上で押すと対応するカッコに移動する

ヴィジュアルモード

ヴィジュアルモードの基本

  • v:ヴィジュアルモード
  • V:行単位の選択
  • Ctl+v:矩形単位

ヴィジュアルモードの応用

  • ggVG:全選択

カット、コピー、ペースト

  • x:1文字単位で消す
  • dd:行単位で消す
  • 3dd:3行消す
  • p:貼り付け
  • yy:コピー

検索

  • /:検索
  • n:下方向に検索
  • N:上方向に検索
  • *:今カーソルの位置の単語を下方向に検索
  • ¥#:今カーソルの位置の単語を上方向に検索

置換 s:substitute, c:confirm

  • :s/script/Script/ :行にある最初の”script”という単語を”Script”に変える
  • :s/script/Script/g :行にある全ての"script"という単語を"Script"に変える
  • :%s/script/Script/g :ファイル全体にある"script"という単語を"Script"に変える
  • :%s/script/Script/gc :置換時に確認を求める場合

アンドゥ、リドゥ

  • u:取り消し
  • Ctl+r:リドゥ

ウィンドウの分割

  • :sp : 縦方向の分割
  • :vs : 横方向の分割
  • Ctl+w, w : 下方向のウィンドウに移動
  • :e [file name] : ウィンドウでファイルのオープン
  • :close : ウィンドウを閉じる

作業の繰り返し

  • . : 直前の操作を繰り返す

タブ

  • :tabnew : 新しいタブを開く
  • :tabe [file name] : ファイルを指定してタブで開く
  • gt : タブ間の移動
  • :tabclose : タブを閉じる
  • :tabdo %s/html/HTML/g : タブ全体で置換を行う
  • vim -p [file1] [file2] ... : ファイルを指定してタブで開く

補完機能

  • Ctl + n : 変数名などを保管してくれる

短形選択後の変更

  • Ctl+v, 先頭の文字を選択, I(インサートモード),加える文字を入力

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

  • c/d/y : change, delete, insert
  • i/a : 中身か全体か
  • t/"/)/] : タグ, ", ), ]

Vimの設定

  • :set number : 行番号の表示
  • :set nonumber : 行番号の非表示
  • :syntax on : コードの色分けをする
  • :syntax off : コードの色分けをしない
  • :set tabstop=4 : タブの文字数を4にする
  • :set ignorecase : 検索時に大文字、小文字の区別なく引っかかる
  • :set noignorecase : 検索時に小文字のみ引っかかる

応用例

  • cit : タグの中身を消してインサートモード
  • cia : タグまで消してインサートモード
  • ci" : ”の中身を消してインサートモード
  • ggVG= : ヴィジュアルモードで全選択してインデントを揃える

まとめ

こんな感じでコマンドをまとめてみました。まだまだ使えるコマンドとかあると思いますが、おいおいアップデートしていきたいと思います。

入門vi 第6版

入門vi 第6版

Vimテクニックバイブル ?作業効率をカイゼンする150の技

Vimテクニックバイブル ?作業効率をカイゼンする150の技