2013-10-17 48 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

你可以得到當前類的名稱需要處理光標的位置。

相關問題