3

例如在这种情况下:

函数调用(arg1,arg2);
                  ^光标在这里

调用expand('<cword>')将返回“arg2”。
当光标位于当前单词位置的左侧时,我需要过滤掉这些情况。
有没有办法做到这一点?

4

2 回答 2

4

使用(下一个)位置的另一种方法<cword>是:(
根据他想知道的OP的评论,也许应该用该请求更新问题)

let cInd = strridx(getline('.'), expand("<cword>"), col('.') - 1)
let isOnKeyword = (cInd >= 0 && (cInd + strlen(expand("<cword>"))) >= (col('.') - 1))

<cword>如果下一个也位于当前行的较早位置,则需要第二部分,在您的示例中,如果字符串arg2也应该在该行中的某个位置之前,,那是假设的,但应该考虑。
请注意,它strridx 不是 stridx.

于 2013-02-25T01:46:03.640 回答
2

也许通过检查光标当前是否在关键字字符上:

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