👏
Vim でカーソル下の特定の正規表現にマッチするテキストを取得する
Vim で『カーソル下を対象として特定の正規表現にマッチするテキスト』を取得したかったんですが、Vim 9.1 だといい感じに取得する手段がなさそうだったので自前で Vim script 書きました。
それが以下の通り。
function! s:get_cursor_word(pattern) abort
const column = getcurpos()[2] - 1
const line = getline(".")
const matched = line->matchstrpos(a:pattern)
if matched[1] <= column && column < matched[2]
return matched[0]
else
return ""
endif
endfunction
かなり雑なのでエッジケースなどあるんですが一旦これでいいかなあ。
この値を取得したいことはかなり多いので Vim 本体で取得できるようになるとうれしいですねえ。
Discussion