我正在努力学习vimscript.我在"学习vimscript艰难的方式"中读了很多,但没有找到我的问题的答案:
如何判断vimscript中的搜索是否成功?我有两个案例:
:如果有一个(在当前行上做foo:endif
:if/searchtarget成功做bar:endif
根据具体情况,有各种方法.
:如果有一个(在当前行上做foo:endif
search()根据@ Kent的回答你可以使用.它支持{stopline}参数,以避免它超出当前行(您可以通过line('.')).但它只能在一个方向上搜索(向前或向后),因此您必须定位光标.
所以听起来这if getline('.') =~ '('是一个更好的测试.它对当前行进行正则表达式比较(.您也可以使用match()(查找:help完整的API文档和示例BTW的任何函数),或非正则表达式stridx()(可能更快,但也不太清楚阅读).
:if/searchtarget成功做bar:endif
同样,这听起来像是一个用途search(),它将光标重新定位在匹配上/search.但你也可以使用后者(with :normal),并通过比较getpos('.')命令之前和之后的光标位置(通过获得)来检查跳转.
| 归档时间: |
|
| 查看次数: |
1152 次 |
| 最近记录: |