very magic

vim で検索を行う場合、デフォルトではいわゆるメタキャラにバックスラッシュをつけてquoteする必要があって結構面倒くさいのです。

/'\('\w\|\[^']\)\+'

you have mocking some 'bird of the year'.
you have mocking some 'the year's bird'.

とかもう凶器です。わけわかんないでっす。

set magicはしてたんだけど・・・

ある程度quoらなくてもおっけーにする set magic というのがあって、これをつかうと\.(ANY)とか\[とか\*とか(\+はダメ)のバックスラッシュが不要になります

/'\('\w\|\[^']\)\+'(使用前)
/'\('\w\|[^']\)\+'(使用後)

・・・・・・・・・・・・・かわってねーよ!
#中途半端ー
確かにカジュアルな検索時は +とか .とか自身を当てたいことの方が普通で、普通を最適化するのが王道。正規表現を駆使した検索をついつい考えてしまうのは充分なるperl厨なのかもしれません。んんんんんがしかし、面倒なものは面倒です。心が折れてしまいそうです。
これまであんまり不便も感じていなかったので set magic したところで探究心が止まっていたのですが、ふとCSVファイルとか置換するのに \(\([a-z]\+\),\W*\( ......とか書いてて頭のネジが飛びました。もうイヤだ!
というわけでhelp magicしてみたら一発でした><

after:    \v       \m       \M       \V         matches ~
                'magic' 'nomagic'
          $        $        $        \$         matches end-of-line
          .        .        \.       \.         matches any character
          *        *        \*       \*         any number of the previous atom
          ()       \(\)     \(\)     \(\)       grouping into an atom
          |        \|       \|       \|         separating alternatives
          \a       \a       \a       \a         alphabetic character
          \\       \\       \\       \\         literal backslash
          \.       \.       .        .          literal dot
          \{       {        {        {          literal '{'
          a        a        a        a          literal 'a'

検索文字列前に\vをつけると 'very magic' モードになるらしいです。なんと!! 呪文の詠唱無しに高度な魔法の行使が可能に(違)
こうすると

/'\('\w\|\[^']\)\+'(使用前)
/\v'('\w|[^'])+' (使用後)

おお、ダイブいい感じ(既に病気)。目標は<名前>,<数値>,<数値>,<数値>,<数値>というファイルだったので

/\v((\d|\a)+,?\s*){5}

と横着をしてみたら。。。ダメでした(置換変数には最後の 2個しか残らない)。考えるのめんどだったので CmdWinで C-vしてコピりました。

/\v(\a+),?\s*(\d+),?\s*(\d+),?\s*(\d+),?\s*(\d+),?\s*

としてから

:%s//"\1", \5 - \3, \2 - \4/

で変換。
山のいただきや川のほとりから「それawkでー」という声が聞こえてくる気がします。

結論

とりあえず

:nmap g/ /\v

しときました。とさ。とさ