38
37

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

「Vimの正規表現`\%`は結構便利だよ」という話

Posted at

この記事はVim Advent Calendar 2012 : ATND 79日目の記事になります。
78日目は@raa0121LingrのBot「VimAdv」を作ったでした。


今回は、Vimの意外と知られていない正規表現\%を紹介したいと思います。

任意にマッチするアトム列 \%[]

Vimの各コマンドは省略名をもっているので、これは必須の正規表現かなっと思います。

echo matchstr("fun", 'fu\%[nction]') 
" 'fun'

" `\%[]`を使わないとこう書かなければいけない!!
echo matchstr("fun", 'fu\(n\(c\(t\(i\(o\(n\?\)\?\)\?\)\?\)\?\)\?\)\?') 
" 'fun'

部分正規表現としてカウントされないグループ化 \%(\)

これはmatchlist()には結構必須で、matchlist()は10個以上のグループ化をしている
パターンを渡すとエラーになってしまいます。

echo matchlist("function", 'fu\(nc\)t\(io\)n')
" ['function','nc','io','','','','','','',''] 

echo matchlist("function", 'fu\%(nc\)t\(io\)n') 
" ['function','io','','','','','','','']

以上、「%...は結構便利だよ」という話でしたw。
実はこれはujihisa.vim#3で話そうかと思ったやつですw。
スライドにしたら4,5枚になったのに記事にすると少なすぎる...(すみません)

38
37
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
38
37

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?