たとえば、この状況では:
function_call(arg1, arg2); ^カーソルはここにあります
を呼び出すと、 expand('<cword>')
「arg2」が返されます。
カーソルが現在の単語の位置の左側にある場合、これらのケースを除外する必要があります。
それを行う方法はありますか?
たとえば、この状況では:
function_call(arg1, arg2); ^カーソルはここにあります
を呼び出すと、 expand('<cword>')
「arg2」が返されます。
カーソルが現在の単語の位置の左側にある場合、これらのケースを除外する必要があります。
それを行う方法はありますか?
(next) の位置を使用する別の方法は次の<cword>
とおりです
。
let cInd = strridx(getline('.'), expand("<cword>"), col('.') - 1)
let isOnKeyword = (cInd >= 0 && (cInd + strlen(expand("<cword>"))) >= (col('.') - 1))
次の部分も現在の行の前の位置にある場合、2番目の部分が必要です<cword>
.あなたの例では、文字列arg2
が,
. ではない
ことに注意してください。strridx
stridx
おそらく、カーソルが現在キーワード文字にあるかどうかを確認することによって:
let isOnKeyword = matchstr(getline('.'), '\%'.col('.').'c.') =~# '\k'