気ままなタンス*プログラミングなどのノートブック

プログラミングやRPGツクール、DTM、VOCALOIDについてのんびり書きます。

【vim】各種操作-part3(タブ、正規表現)

読み進めているので、メモ。

タブ

タブでオープン

:tabnew ~/.vimrc

タブ切り替え

Shift + Command + {

正規表現

行頭・行末^, $

  • 先頭に#がついた行 ^#

  • 行末に;がついた行 $;

量指定子

  • パターンの繰り返しには「*」または「+」を使う
  • *は0個異常の繰り返し、+は1個異常の繰り返しを表す
  • ¥vをつけない場合は、または¥と書く
# 検索対象:String str
# パターン(¥vあり)
¥vStrings+str

# パターン(¥vなし)
String¥s¥+str
  • ¥sや+のような特殊な文字を「メタ文字」と呼ぶ
  • *や+のようなマッチする個数を指定するメタ文字を「量指定子」と呼ぶ
  • ¥sは空白文字を表す
    • ¥sはVimでは半角スペースとタブ文字にマッチする
    • ¥s+と書くことで、「半角スペースかタブ文字1文字以上の繰り返し」という意味になる

量指定子:0個または1個?、=

?または=は0個または1個の量指定子

# 検索対象:「function foo(」または「function(」

¥vfunction(¥s+¥w+)¥(

量指定子:回数指定{n}, {n, m}

  • 回数指定の繰り返しには、{n}や{n,m}を使う
# 検索対象:2016/01/31
¥v¥d{4}¥/¥d{2}¥/¥d{2}
  • 正規表現エンジンによっては使えない場合もあるため そういう場合は、文字クラスを使い、[0-9]を書く
  • /を検索するためにバックスラッシュでエスケープしている

  • 2016/1/31にはマッチしない。月の部分が2文字の数値ではないため

# 上記を考慮

¥v¥d{4}¥/¥d{1,2}¥/¥d{1,2}

  • ¥d{1,2}とすることで1文字から2文字までの数字(¥d)にマッチする

    • 1が最小の繰り返し回数、2が最大の繰り返し回数
  • はそれぞれ{0,} {1,}のように書くこともできる

¥のエスケープ

  • 文字の/を検索したい場合は、¥/のようにエスケープする必要がある
  • これは正規表現というよりも、Vimの/コマンドと?コマンドの仕様によるもの

固定文字列を検索 ¥V

  • 正規表現のメタ文字を無視して固定文字列で検索する
  • ¥Vをパターンの先頭につけることで固定文字列検索が可能