Vimã®æ£è¦è¡¨ç¾ã«ãããå èªã¿ãå¾èªã¿
ã»Vimã§ä½¿ããæ£è¦è¡¨ç¾ã®ä¸è¦§
http://archiva.jp/web/tool/vim_regexps.html
ã»å
èªã¿ãå¾èªã¿
http://vim-jp.org/vim-users-jp/2009/09/20/Hack-75.html
ç¹å®ã®ãã¿ã¼ã³ã対象ã®ãã¿ã¼ã³ã®å¾ãã«æ¥ãã¨ããæ¡ä»¶ â å
èªã¿
ç¹å®ã®ãã¿ã¼ã³ã対象ã®ãã¿ã¼ã³ã®åã«æ¥ãã¨ããæ¡ä»¶ â å¾èªã¿
è¯å®å
èªã¿ï¼\@=
å¦å®å
èªã¿ï¼\@!
è¯å®å¾èªã¿ï¼\@<=
å¦å®å¾èªã¿ï¼\@<!
Vimã§ã¯ããããã®ãã¿ã¼ã³æå®ã¯ãç´åã®æåãã¾ãã¯ã°ã«ã¼ãã«å¯¾ãã¦æå®ããã
ã¤ã¾ããæåå "Hello" ã«å¯¾ãã¦è¯å®å
èªã¿ãè¡ãå ´åãã°ã«ã¼ãåãã¦ã
\(Hello\)\@=
ã¨è¨è¿°ããã
è¯å®å
èªã¿ã¨è¯å®å¾èªã¿ã¯ãæ®éã«æ£è¦è¡¨ç¾ãè¨è¿°ããã®ã¨ãããããç®æã¯åãã ãããããã®å¯¾è±¡ã«å
èªã¿ãå¾èªã¿ãã¿ã¼ã³ãå«ããªãç¹ãç°ãªããå³ã¡ãæååãã®ãã®ããããããã®ã§ã¯ãªããä½ç½®ããããããã¨ãããã¨ã§ããã
è¯å®å èªã¿
è¯å®å èªã¿ã¯ãpatternã®ç´åã®ä½ç½®ã«ãããããã
AAABBB
ã«å¯¾ãã¦ã
%s /\(BBB\)\@=/CCC/
ã¨ããç½®æãè¡ãã¨ã
AAACCCBBB
ã«ãªãã
è¯å®å¾èªã¿
è¯å®å¾èªã¿ã¯ãpatternã®ç´å¾ã®ä½ç½®ã«ãããããã
AAABBB
ã«å¯¾ãã¦ã
%s /\(BBB\)\@<=/CCC/
ã¨ããç½®æãè¡ãã¨ã
AAABBBCCC
ã«ãªãã
ï¼ã¯ã¦ãªè¨æ³ã§è¡¨çµã¿ãä½ãã¨ããªãããã®ä½ç½®ã«å¤æ°ã®ãã©ã³ã¯ãå
¥ãï¼
åé¡ | 対象æåå | æ£è¦è¡¨ç¾ç½®æ | ç½®æå¾ã®æåå |
---|---|---|---|
æ®éã®æ£è¦è¡¨ç¾ | AAABBB |
%s /BBB/CCC/ |
AAACCC |
è¯å®å èªã¿ | AAABBB |
%s /\(BBB\)\@=/CCC/ |
AAACCCBBB |
è¯å®å¾èªã¿ | AAABBB |
%s /\(BBB\)\@<=/CCC/ |
AAABBBCCC |
å¦å®å èªã¿ãå¦å®å¾èªã¿
è¯å®å èªã¿ãå¾èªã¿ããããå¦å®å èªã¿ãå¾èªã¿ã®æ¹ã使ãæ©ä¼ãå¤ããããããªãã
ãç¹å®ã®æåã§å§ã¾ããªããï¼å¦å®å¾èªã¿ï¼ã¨ããæ¤ç´¢ãããç¹å®ã®æåã§çµãããªããï¼å¦å®å èªã¿ï¼ã¨ããæ¤ç´¢ã§ãã使ç¨ããã
ã»ä¾1ï¼"myobj."ã§å§ã¾ããªã"method()"ã"myobj.method()"ã«ç½®æãã
:%s /\(myobj\.\)\@<!method()/myobj.method()/g
ã»ä¾2ï¼()ã§çµãããªã"function"ãæ¶å»ãã
:%s /function\(()\)\@!//g
å ¨ä½çã«Vimã®æ£è¦è¡¨ç¾ã¯ããã¯ã¹ã©ãã·ã¥ãå¤ç¨ããã®ã§èªã¿ã«ããã
å®ã®ã¨ããç§ã¯æªã ã«ãããä½å¹´ããVimã¨Emacsã®éã§æºãã¦ããã
ç§ã®å°æã¯ãVimã«ãããã¨è¨ã£ã¦ããã