1

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

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

$this->localize('SOME_KEY_HERE');

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

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

接受有关如何执行此操作的任何/所有建议。

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

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

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

1 回答 1

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

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

于 2013-10-17T20:10:47.153 回答