gpt4 book ai didi

vim - 如何判断在 vimscript 中搜索是否成功?

转载 作者:行者123 更新时间:2023-12-04 14:27:11 24 4
gpt4 key购买 nike

我正在尝试学习 vimscript。我在“艰难地学习 vimscript”中读了很多,但没有找到我问题的答案:

如何判断在 vimscript 中搜索是否成功?我有两种情况:

:if there's a ( on the current line
do foo
:endif


:if /searchtarget succeeds
do bar
:endif

最佳答案

根据上下文,有多种方法。

:if there's a ( on the current line do foo :endif



您可以使用 search() ,根据@Kent 的回答。支持 {stopline}参数,以避免它超出当前行(您可以通过 line('.') 传递)。但它只搜索一个方向(向前或向后),因此您必须定位光标。

所以它听起来像 if getline('.') =~ '('是一个更好的测试。它对当前行与 ( 进行正则表达式比较.您也可以使用 match()相反(通过 :help 查找任何函数以获取完整的 API 文档和示例 BTW),或非正则表达式 stridx() (这可能更快,但阅读起来也不太清楚)。

:if /searchtarget succeeds do bar :endif



同样,这听起来像是 search() 的用法。 ,它将光标重新定位在匹配上,例如 /search .但是您也可以使用后者(使用 :normal ),并通过比较命令前后的光标位置(通过 getpos('.') 获得)来检查跳转。

关于vim - 如何判断在 vimscript 中搜索是否成功?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27660221/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com