タグ

vimとzsに関するishideoのブックマーク (2)

  • Vimの正規表現 “\v”, “\zs”, “\ze” | blog.delphinus.dev

    Vimの小ネタ。 Vimで正規表現を使うとき、Perlなんかと比べると制御文字を書くときにバックスラッシュを多用するため見にくく感じていた。たとえば、 「abc」と「def」に挟まれた文字列 を表す正規表現というと、Perlなら /(?<=abc).+(?=def)/ で済むところ、Vimだと \(abc\)\@<=.\+\(def\)\@= となるのでめんどくせえ〜とか思ってたわけだ。 とんでもない間違いでした。 便利な制御文字があったんだね。こんなときに使うのが「\v」。これを使うと英数字以外が全て制御文字と見なされるので、表記が格段にシンプルになる。同じ例だと、 \v(abc)@<=.+(def)@= こちらが圧倒的に見易い。ちゃんとヘルプ読まないとダメだねorz そしてさらに便利なのが「\zs」と「\ze」。これは正規表現の「始まり」と「終わり」を表す。同じ例を表すと、 abc\z

  • vim正規表現リファレンス - Qiita

    このエントリの内容は pattern - Vim語ドキュメント を見れば全て書いてある。 個人的によく見直すものを自分なりに整理してまとめなおしたものです。 メモ vimの正規表現には \ でエスケープする必要な文字がオプションによって変わる。これには magic / nomagic / very magic / very nomagic と4つのモードがあるけど、vim では magic モードを基とします。 繰返し制御系(量指定子) a* は0回以上の a の繰り返しにマッチする。(最長一致) a+ は単に a+ という文字列にマッチする。 a\+ は1回以上の a の繰り返しにマッチする。(最長一致) a? は単に a? という文字列にマッチする。 a\? は0または1個の a にマッチする。 a\= は0または1個の a にマッチする。(\? と基同じだが \? は後方検索

    vim正規表現リファレンス - Qiita
  • 1