2

按 shift + * 将在 vim 中突出显示相似的单词,但是,单词似乎是字符串的一部分,直到下一个特殊字符。因此,如果我的标记位于 s 上the-string-I-want-to find,它将突出显示文件中的所有“字符串”实例。

有没有办法我可以做同样的事情,但不是搜索子集,而是搜索整个字符串the-string-I-want-to find

4

2 回答 2

1

*命令适用于单词;哪些字符属于该组由'iskeyword'选项控制(每个缓冲区)。正如 Peter Rincker 已经评论的那样,您可以通过

:setlocal isk+=-

(或使用:set例如 in~/.vimrc来全局更改它。)请注意,这也会影响其他命令,例如使用 , 等的导航we甚至可能影响语法突出显示。

或者,有一些插件将*映射扩展到可视模式,因此您可以通过先选择任意文本片段来搜索它们。我的SearchHighlighting 插件提供了这个并且有一个替代列表。

于 2013-09-06T06:59:43.253 回答
0

Vim 是一个非常糟糕的没有自定义的编辑器。将此添加到您的.vimrc

function! s:VSetSearch()
let old = @"
norm! gvy
let @/ = '\V' . substitute(escape(@", '\'), '\n', '\\n', 'g')
let @" = old
endfunction

" * and # search for next/previous of selected text when used in visual mode
vnoremap * :<C-u>call <SID>VSetSearch()<CR>/<CR>
vnoremap # :<C-u>call <SID>VSetSearch()<CR>?<CR>

现在您要做的是突出显示您要搜索的内容v,然后点击*。有了这个映射,它会做和你做的一样的事情*,但是你的视觉选择。

于 2013-09-06T07:00:43.807 回答