0

我想定义一个自定义命令来执行以下步骤:grep 当前单词,copen,增量搜索 grep 单词。这是我正在使用的命令:

nmap <C-p> :execute "grep! -Irn " . shellescape(expand("<cword>")) . " ."<cr>:copen<cr>:g/<cword>/<cr>

但是在打开 quickfix 窗口后,第二个 cword 会扩展为当前单词。如何使用 grep 之前使用的单词?

4

1 回答 1

1

与您<cword>进入的方式相同grep

nmap <C-p> :execute "grep! -Irn " . shellescape(expand("<cword>")) . " .\<cr>:copen\<cr>:g/" . expand("<cword>"). "/\<cr>"<cr>

一些想法:

  • 设置搜索寄存器而不是:g. 例如:let @/ = "foo"
  • 利用nnoremap
  • 用于escape()使其更具弹性。看:h escape(
  • 也许使用:vimgrep. 看:h :vimg
  • 这是通过以下插件解决的类似问题:visual starAck.vimAg.vim
于 2014-08-17T05:04:59.567 回答