我正在通过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。
答案 0 :(得分:4)
使用带有:silent
命令的外部命令时,有时会发生这种情况。您可以在倒数第二段的:help :silent
处阅读相关内容。在那里它告诉您,您可以通过在执行命令后重新绘制屏幕或使用CTRL-L
手动清除它来解决问题。
:nnoremap (yadda yadda):copen<cr>:redr!<cr>