Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/search/2.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

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
Search vim:通过vimrc的高亮显示执行正常搜索_Search_Vim_Highlight_Viml - Fatal编程技术网

Search vim:通过vimrc的高亮显示执行正常搜索

Search vim:通过vimrc的高亮显示执行正常搜索,search,vim,highlight,viml,Search,Vim,Highlight,Viml,我使用下面的映射*搜索当前选择的高光 set hlsearch vnoremap * :call VisualSelection('f')<CR> vnoremap # :call VisualSelection('b')<CR> function! VisualSelection(direction) range let l:saved_reg = @" execute "normal! vgvy" let l:pattern = escape(@", '\

我使用下面的映射*搜索当前选择的高光

set hlsearch
vnoremap * :call VisualSelection('f')<CR>
vnoremap # :call VisualSelection('b')<CR>
function! VisualSelection(direction) range
  let l:saved_reg = @"
  execute "normal! vgvy"
  let l:pattern = escape(@", '\\/.*$^~[]')
  let l:pattern = substitute(l:pattern, "\n$", "", "")

  if a:direction == 'b'
    execute "normal ?" . l:pattern . "\<CR>"
  elseif a:direction == 'gv'
    call CmdLine("vimgrep " . '/'. l:pattern . '/' . ' **/*.')
  elseif a:direction == 'replace'
    call CmdLine("%s" . '/'. l:pattern . '/')
  elseif a:direction == 'f'
    execute "normal /" . l:pattern . "\<CR>"
  endif

  let @/ = l:pattern
  let @" = l:saved_reg
endfunction
set-hlsearch
vnoremap*:调用VisualSelection('f')
vnoremap#:调用VisualSelection('b')
功能!视觉选择(方向)范围
让l:saved_reg=@”
执行“正常!vgvy“
设l:pattern=escape(@“,“\\/.$^~[]”)
让l:pattern=替换(l:pattern,“\n$”,“,”)
如果a:方向=='b'
执行“正常”吗。l:图案。"\"
elseif a:方向=='gv'
调用CmdLine(“vimgrep”'/'.l:pattern'/'.***.)
elseif a:方向==“替换”
调用CmdLine(“%s”。“/”。l:pattern.“/”)
elseif a:方向=='f'
执行“正常/”。l:图案。"\"
恩迪夫
设@/=l:模式
设@“=l:已保存的\u reg
端功能
但是,此脚本不会突出显示搜索结果。在ex命令模式下手动输入命令时:
执行“normal/”.l:pattern.“\”
,但是,我会得到突出显示


请让我知道如何从vimrc脚本中启用高亮显示。

上次使用的搜索模式(
@/
)和
hlsearch
在函数完成后重置(请参阅),因此我怀疑这就是它。事实上,您正在手动重置
@/
− hlsearch突出显示当前的搜索模式。您可能希望使用
matchadd()
− 我妈妈会的。谢谢!我想你是对的!