今まで一年半以上VIMを使ってきました。しかし、まだ知りない機能やファンクションを見つけるのは毎日楽しんでいます。 今回のブログでは、私にとって最も役に立つコマンドや機能を紹介したいと思います。

1. ナビゲーションキー

テキストを追加場合、i の代わりにaを使いましょう

normal modei は現在の位置の 直前 に入力し始める一方で、a は現在の位置の 直後 に入力するとされます。 a を使ったら i の場合の不要な 一字を右に移動 という動作が無くなります。

一般のhjkl使わずb e wを使うようにしましょう

  • bは単語の前頭に移動する
  • eは単語の後頭に移動する
  • wは次の単語の前頭に移動する

なので、私が良く使っているコマンドの組み合わせはeaもしくはw/b + eaです。この組み合わせを実行した、今の位置はどこかにも関わらず、単語の後頭に移動して、insert mode に変更することができます。

2. 確定な範囲の内容を削除

2.1. di(

現在の位置は(String m, String n, Integer p)の中とすれば、command modeに変更してから di(を実行すると

1
2
3
public void testVim(String m, String n, Integer p){
    System.out.println("Hello world");
}

di(

1
2
3
public void testVim(){
    System.out.println("Hello world");
}

2.2. di"

1
2
3
public void testVim(String m, String n, Integer p){
    System.out.println("Hello world");
}

di"を実行すると:

1
2
3
public void testVim(String m, String n, Integer p){
    System.out.println("");
}

2.3. df" dt"

この二つのコマンドはdiコマンドとの違うのは指定した範囲の全ての内容じゃなくて、現在のカーソルの一から消すということです。

|は現在のクーソルの位置です。

1
2
3
public void testVim(String |m, String n, Integer p){
    System.out.println("Hello world");
}

df)

1
2
3
public void testVim(String |{
    System.out.println("Hello world");
}

dt)で消したら指定キャラクターを残します。

1
2
3
public void testVim(String |){
    System.out.println("Hello world");
}

今回はこれで以上とさせて頂きます。

次回には次の内容を紹介していきたいと思います。

  • vim registryを紹介
  • macroを紹介