👏

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 本体で取得できるようになるとうれしいですねえ。

GitHubで編集を提案

Discussion