例如在这种情况下:
函数调用(arg1,arg2); ^光标在这里
调用expand('<cword>')
将返回“arg2”。
当光标位于当前单词位置的左侧时,我需要过滤掉这些情况。
有没有办法做到这一点?
例如在这种情况下:
函数调用(arg1,arg2); ^光标在这里
调用expand('<cword>')
将返回“arg2”。
当光标位于当前单词位置的左侧时,我需要过滤掉这些情况。
有没有办法做到这一点?
使用(下一个)位置的另一种方法<cword>
是:(
根据他想知道的OP的评论,也许应该用该请求更新问题)
let cInd = strridx(getline('.'), expand("<cword>"), col('.') - 1)
let isOnKeyword = (cInd >= 0 && (cInd + strlen(expand("<cword>"))) >= (col('.') - 1))
<cword>
如果下一个也位于当前行的较早位置,则需要第二部分,在您的示例中,如果字符串arg2
也应该在该行中的某个位置之前,
,那是假设的,但应该考虑。
请注意,它strridx
不是 stridx
.
也许通过检查光标当前是否在关键字字符上:
let isOnKeyword = matchstr(getline('.'), '\%'.col('.').'c.') =~# '\k'