Vim强调类似包括特殊字符

时间:2013-09-06 00:52:58

标签: vim

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

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

2 个答案:

答案 0 :(得分:1)

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

来操纵它
:setlocal isk+=-

(或者使用:set例如在~/.vimrc中全局更改此内容。)请注意,这也会影响其他命令,例如使用we等进行导航。甚至可能是语法高亮。

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

答案 1 :(得分: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 突出显示你要搜索的内容然后点击 * 。使用此映射,它将与*执行相同的操作,但与您的视觉选择相同。