vim ultisnip在换行后扩张

时间:2015-02-20 21:31:08

标签: vim ultisnips

我在vim-expand中使用了Ultisnips:

snippet prg 
!This is file : `!v expand('%:r')`
! Author= `!v expand($USER)`
! Started at: `date +%d.%m.%y`
! 
Program  ${1:`!v expand('%:r')`}
Implicit None
${2:<++Start Typing++>}
End Program  $1
endsnippet

在$ {1:}扩展后,我遇到了一个问题 $ {1:`!v expand(&#39;%:r&#39;)`},如果我设置了一个换行符,End Program $1中的$ 1也会选择它;这是非预期的。 为清楚起见,这是一个截屏视频: https://www.youtube.com/watch?v=0IjoqWXQNI8

我想扩展并匹配第一行,但不是在linebreak之后。 请帮助。

1 个答案:

答案 0 :(得分:0)

您正在寻找的是Ultisnips的截屏视频已经涵盖的内容。您只需要对代码段值$1

进行正则表达式调整
Program  ${1:`!v expand('%:r')`}
Implicit None
${2:<++Start Typing++>}
End Program  ${1/([^\n$]+).*/$1/}
endsnippet

${1/([^\n$]+).*/$1/}
        |     |  |
        |     |  +--------Replace by first atom i.e. Matched by (..)
        |     +--------Anything That follows.
        +----------- Match everything except a newline | EOL(endofline)