匹配vimscript中的正则表达式并将其返回

时间:2013-10-17 17:35:07

标签: php regex vim

在我说出我正在尝试做的事情之前,我想以我对任何/所有解决方案持开放的态度为其开头。

基本上我正在编辑PHP文件。我在编辑的类中有一个本地化函数,它带有一个键,类似于:

$this->localize('SOME_KEY_HERE');

我想要做的(在VIM中)是创建一个键绑定,当光标在该键上时,将确定该函数调用的本地化值。我可以很容易地将密钥放入vimscript函数中。我的计划是通过正则表达式找到类名(这不需要完美)然后通过:exec php -r实例化该类并调用该函数。所以或多或少,创建一个实际调用的最小脚本。

就像我说的那样,我可以按照我想要的方式隔离钥匙。但是试图找出适当的vimscript方法来找到当前的类。基本上我想要在vimscript变量中第一行与当前文件中的/ ^ class /匹配的第二个单词。我浏览了一些文档,但似乎无法使它工作。

打开任何/所有关于如何执行此操作的建议。

编辑:为了澄清,我可以通过执行以下操作来隔离我突出显示的键:

noremap <leader>z :call DoSomething(expand("<cword>"))<CR>

function! DoSomething(l)
    let key = a:l
    echom key
endfunction

1 个答案:

答案 0 :(得分:2)

您可以使用以下命令获取当前班级的名称:

function! DoSomething(l)
    let key = a:l
    search('^class\s\zs\w\+\ze', 'b')
    let class = expand('<cword>')
    echo 'key: ' . key . ' class: ' . class
endfunction

您仍然需要处理光标的位置。