Vim grep导致字符暂时消失

时间:2014-01-05 20:54:30

标签: macos vim

我正在通过Learn Vimscript the Hard Way" by Steve Losh。在第32章中,我们构建了一个grep命令,将结果放入quickfix窗口。它看起来像这样:

:nnoremap <leader>g :silent :exe "grep! -R " . shellescape(expand("<cWORD>")) . " ."<cr>:copen<cr>

它基本上有效,但是当我运行它时,它会导致角色变得(暂时)不可见。如果我关闭并重新打开文件,则会回来。此外,如果我搜索不可见的字符,它们会出现。

例如,如果我将光标放在一个文本块上的``thedude''上运行命令:

thedude@abides.org
print foo(bar)
print foo(bar)

两个``print foo(bar)''行变得不可见。任何人都可以猜到为什么会发生这种情况?我在OSX Mountain Lion上使用系统默认的Vim v7.3。

1 个答案:

答案 0 :(得分:4)

使用带有:silent命令的外部命令时,有时会发生这种情况。您可以在倒数第二段的:help :silent处阅读相关内容。在那里它告诉您,您可以通过在执行命令后重新绘制屏幕或使用CTRL-L手动清除它来解决问题。

:nnoremap (yadda yadda):copen<cr>:redr!<cr>