vim scriptで、正規表現のマッチを変数に格納するには、matchstr関数を使います。
matchStr1.vim
let defLine = "def some_method"
let methodName = matchstr(defLine, '\(def\s\+\)\zs\k\+', 0)
echo methodName
"-> some_method
最初の引数はリストでも関数を呼ぶことはできますが、リストの場合はマッチした結果ではなく、該当行全体が返ってくるため、さらに絞り込む必要があります。
matchStr2.vim
let defFile = ["def move_camera"]
let defFile += [ "eye = [100, 1000, 1000]"]
let defFile += [ "target = [0, 0, 0]"]
let defFile += [ "up = [0, 0, 1]"]
let defFile += [ "my_camera= Sketchup::Camera.new eye, target, up"]
let defFile += [ "view = Sketchup.active_model.active_view"]
let defFile += [ "view.camera = my_camera"]
let defFile += [ "end"]
let defLine = matchstr(defFile, '\(def\s\+\)\zs\k\+', 0)
let methodName = matchstr(defLine, '\(def\s\+\)\zs\k\+', 0)
echo methodName
" -> move_camera