美好的一天,
我有一个简单的函数,已映射到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发布答案的修改版本。也排除CTAGS
tags
文件。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>
最佳答案
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。
关于regex - VIM-将普通模式功能转换为命令模式功能,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/13145476/