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