2

再会,

我有一个简单的函数,我已映射到CTRL+ L,我在正常模式下使用它来搜索项目中单词或变量的所有实例:

" Find all occurences in files
map <C-l> :execute " grep -srnw --binary-files=without-match --exclude=*~ --exclude-dir=.svn  . -e " . expand("<cword>") . " " <bar> cwindow<CR>

我正在尝试从中创建命令模式功能,因此我可以执行以下操作:

:mySearchFunction wordToFind

这样,我有效地获得了一个简短而简单的“在所有文件中查找”功能,因此我不必一直输入冗长的grep功能。我试过修改. -e " .expand...函数后的代码,但我不熟悉编写VI/VIM函数。我熟悉 C 和 BASH 脚本,但我无法让这个函数按预期工作。

我可以帮助我从我的这个映射中创建命令模式功能吗?

谢谢你。


编辑:从@Conner 发布修改后的答案。也不包括 CTAGStags文件。

command! -nargs=1 SearchAll execute " grep -srnw --binary-files=without-match --exclude={*~,tags} --exclude-dir=.svn  . -e " . expand("<args>") . " " <bar> cwindow
map <C-l> :SearchAll <cword><CR>
4

1 回答 1

6
command! -nargs=1 MySearchFunction execute " grep -srnw --binary-files=without-match --exclude=*~ --exclude-dir=.svn  . -e " . expand("<args>") . " " <bar> cwindow
map <C-l> :MySearchFunction <cword><CR>

我可以建议研究一下 ack 和 Ack.vim。

于 2012-10-30T18:36:33.273 回答