如何将大括号中的文本分配到vim中的变量

时间:2016-02-20 10:33:38

标签: regex vim vim-plugin regex-greedy

是否有任何方法可以在某个乳胶命令(\ body)之前使用大括号获取数据,并将该内容(长文本)分配给变量。

例如:

  

\ text {只是身体前的文字} \ body {包含很多段落等   等等,那些段落也包含很多乳胶命令   \ textbf {my name}和\ textit {text}等但我想要所有的内容   在括号中} \ text {只是身体后面的文字}

我需要

  

\ body {包含很多段落等等,而且段落也是如此   包含很多乳胶命令,如\ textbf {my name}和\ textit {text}   等但我想要在括号中的所有内容}   在一个变量

我想要一些搜索并替换它。那就是为什么

我做了一个宏来在%的帮助下用括号抽出文本(用大括号搜索)。

有没有简单的方法可以做到这一点?

提前致谢

1 个答案:

答案 0 :(得分:6)

您可以使用

{内的所有内容分配到注册a
"ayi{

细分

"a - select register a
y  - yank 
i{ - everything inside {}

匹配大括号

是正确的

如果您以后需要访问a的内容,您可以根据上下文以多种不同方式执行此操作 - 我认为方法是

"ap    : paste register a in normal mode
<C-r>a : paste register a into command line
@a     : access register in script

值得注意的是,正则表达式不足以做匹配的括号。 (我认为有一些扩展可以使它足够强大,但我不确定vim是否支持其中任何一个),