3

たとえば、この状況では:

function_call(arg1, arg2);
                  ^カーソルはここにあります

を呼び出すと、 expand('<cword>')「arg2」が返されます。
カーソルが現在の単語の位置の左側にある場合、これらのケースを除外する必要があります。
それを行う方法はありますか?

4

2 に答える 2

4

(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

于 2013-02-25T01:46:03.640 に答える
2

おそらく、カーソルが現在キーワード文字にあるかどうかを確認することによって:

let isOnKeyword = matchstr(getline('.'), '\%'.col('.').'c.') =~# '\k'
于 2013-02-22T09:05:57.237 に答える