2013-10-17 49 views
1

在我说出我正在尝试做的事情之前,我想先介绍一下我开放的任何/所有解决方案。在vimscript中匹配一个正则表达式并返回它

基本上我正在编辑一个PHP文件。我们在类中的定位功能,我的编辑,需要一个键,与此类似:

$this->localize('SOME_KEY_HERE'); 

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

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

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

编辑:为了澄清,我可以分离我做类似的东西突出重点:

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

你还是:

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

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

你愿意与我们分享一下你开始获得钥匙的脚本吗? –

+0

编辑原文以添加我如何计划在vimscript函数中获取变量中的语言环境密钥的示例。 – JamesB41

+0

你能举一个输入文本的例子,用'class'等等。对我来说,这个问题还不够清楚。你是什​​么意思'我想要第一行中匹配/^class /'的第二个单词?为什么它与你的'SOME_KEY_HERE'有关?您想做什么? – Kent

回答

2

你可以得到当前类的名称需要处理光标的位置。

相关问题