Magic and Literal Strings and Very Magic

Magic and Literal Strings and Very Magic

Content #

有Python文件如下:

max = 10

print "Starting"

for i in range(max):
    print "Counter:", i

print "Done"

执行Vim命令如下:

:execute "normal! gg/for .+ in .+:\<cr>"

并不能高亮for语句所在的行,究其原因,默认magic模式下的"+“号是需要转义的。命令应修改如下:

:execute "normal! gg/for .\\+ in .\\+:\<cr>"

因execute接收的是字符串,需要用”\\“来表示”\"。

Vim单引号表示Literal String,将命令更改如下:

:execute 'normal! gg/for .\+ in .\+:\<cr>'

转义符是对了,但"<cr>“也不再表示换行符了。正确做法是使用字符拼接:

:execute "normal! gg" . '/for .\+ in .\+:' . "\<cr>"

交叉使用单引号与双引号。

使用Very Magic的解决办法如下:

:execute "normal! gg" . '/\vfor .+ in .+:' . "\<cr>"

From #