是否有人知道如何使用match()
创建向后搜索字符串?
word1 word2 word3 word4
^
(^
=光标位置)
我想在光标(word2)之前找到单词的开始和结束列。
我尝试了这个正则表达式没有成功:
match(getline('.'), '?\w\ze\s', col('.')-1)
?
无法在字符串中工作以向后搜索
答案 0 :(得分:2)
您将正常命令?
与对字符串有效的函数match()
混淆。您实际需要的是searchpos()
函数,它在缓冲区中搜索某些模式并返回该位置。
let [start_line, start_col] = searchpos('\<\w\+\>', 'bn')
let [end_line, end_col] = searchpos('\<\w\+\>', 'bne')
标志意味着以下内容:
b
向后n
不要移动光标e
使用匹配结束作为返回的位置请参阅以下内容以获取更多信息:
:h search(
:h searchpos(