Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/vim/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vim执行Nohlsearch未在功能中工作_Vim - Fatal编程技术网

Vim执行Nohlsearch未在功能中工作

Vim执行Nohlsearch未在功能中工作,vim,Vim,: 我喜欢在Vim中使用搜索高亮显示。但过了一段时间,它就糟透了,我不得不手动删除它,因为它定义了映射。因此,我编写了一个函数,用于在一段时间后删除突出显示,绑定到自动命令。因为如果你只是在搜索结果上加上星号,时间可能是个问题,我将这个函数绑定到CursorMoved事件,并引入一个计数器直到零。如果我在结果之间跳转,或者决定稍后跳转到搜索结果元素,这可以很好地工作,并且所有结果都会再次高亮显示并进行手动测试 我插入了很多回音消息来跟踪行为。在计数器为零之前,它工作得绝对正常。然后应删除突出显示

: 我喜欢在Vim中使用搜索高亮显示。但过了一段时间,它就糟透了,我不得不手动删除它,因为它定义了映射。因此,我编写了一个函数,用于在一段时间后删除突出显示,绑定到自动命令。因为如果你只是在搜索结果上加上星号,时间可能是个问题,我将这个函数绑定到CursorMoved事件,并引入一个计数器直到零。如果我在结果之间跳转,或者决定稍后跳转到搜索结果元素,这可以很好地工作,并且所有结果都会再次高亮显示并进行手动测试

我插入了很多回音消息来跟踪行为。在计数器为零之前,它工作得绝对正常。然后应删除突出显示和计数器。这两种方法都可以按照echo输出的说明工作,但不能直观地显示。在使用echom v:hlsearch approve取消高亮显示后,检查它是否已工作,但直接在之后,其再次高亮显示的延迟不可见。因此,循环再次开始,因为计数器已过期,但检测到新的高亮显示。 调用与函数中相同的命令可以更好地工作。那么会发生什么呢

这是我在.vimrc中的代码:

知道这里发生了什么吗?我不知道…

首先,nohlsearch是一个ex命令,所以您不需要:execute

第二,:help:nohlsearch说:

此命令在自动命令中不起作用,因为在执行自动命令| autocmd searchpat |时会保存并恢复高亮显示状态。在调用用户函数时也是如此

所以…你不能在函数中使用它

在搜索后禁用搜索高亮显示并非易事。如果你想知道它实际上有多复杂,我建议你先看看。

首先,:nohlsearch是一个ex命令,所以你不需要:execute

第二,:help:nohlsearch说:

此命令在自动命令中不起作用,因为在执行自动命令| autocmd searchpat |时会保存并恢复高亮显示状态。在调用用户函数时也是如此

所以…你不能在函数中使用它


在搜索后禁用搜索高亮显示并非易事。如果您想了解它的实际参与程度,我建议您看看。

从函数内部尝试以下内容:

call feedkeys( ":nohlsearch\<CR>" )

注意:注意双引号,它们是转义序列所必需的。这对我来说甚至在用vim 8测试过的函数内部都是有效的。我不是vimscript专家,但这里可能发生的事情是,它将密钥添加到队列中,并仅在函数完成后处理它们。

从函数内部尝试以下操作:

call feedkeys( ":nohlsearch\<CR>" )

注意:注意双引号,它们是转义序列所必需的。这对我来说甚至在用vim 8测试过的函数内部都是有效的。我不是vimscript专家,但这里可能发生的事情是,它将密钥添加到队列中,并仅在函数完成后处理它们。

必须是call feedkeys:set nohlsearch\Nice way to hack Vim。必须是call feedkeys:set nohlsearch\Nice way to hack Vim。