我正在尝试p5-app-ack
从 Mac Ports安装端口,但它似乎最终没有创建/opt/local/bin/ack
二进制文件:
$ sudo port search *app-ack
Password:
p5-app-ack @1.960.0 (perl)
A grep replacement that ignores .svn/CVS/blib directories
p5.8-app-ack @1.960.0 (perl)
A grep replacement that ignores .svn/CVS/blib directories
p5.10-app-ack @1.960.0 (perl)
A grep replacement that ignores .svn/CVS/blib directories
p5.12-app-ack @1.960.0 (perl)
A grep replacement that ignores .svn/CVS/blib directories
p5.14-app-ack @1.960.0 (perl)
A grep replacement that ignores .svn/CVS/blib directories
p5.16-app-ack @1.960.0 (perl)
A grep replacement that ignores .svn/CVS/blib directories
Found 6 ports.
$ perl --version
This …
Run Code Online (Sandbox Code Playgroud) ack
通常显示带有文件名的行号,
$ ack searchme
filename
1:searchme
Run Code Online (Sandbox Code Playgroud)
但搜索单个文件时不会,
$ ack searchme filename
searchme
Run Code Online (Sandbox Code Playgroud)
显示行号很容易 grep
$ grep -n searchme filename
1:searchme
Run Code Online (Sandbox Code Playgroud)
搜索单个文件时可以显示行号ack
吗?
我在 vim 中使用 ack.vim。我在一个很棒的 vim quickwindow 中得到了我的搜索结果。唯一的问题是我必须按 [enter] 才能打开显示在快速窗口中的文件。在 ack.vim github站点上,它说
在 quickfix 窗口中,您可以使用:
o to open (same as enter) go to preview file (open but maintain focus
on ack.vim results)
t to open in new tab T to open in new tab silently
q to close the quickfix window
Run Code Online (Sandbox Code Playgroud)
但它们对我不起作用。我怎样才能让它工作?
我的目标是不必总是告诉ack
给定项目中要 grep 的目录(如果我不这样做,它会很慢,因为它也会扫描非源文件夹)。到目前为止,我已经想出了./ack
在项目文件夹中放置一个可执行脚本,该脚本委托给带有一些额外选项的全局 ack 命令,但理想情况下,我会.ackrc
在该项目目录中拥有类似的内容,并且ack
会自动选择它。
这就是我目前所拥有的:
#!/usr/bin/env sh
ack $@ src subproj1/src subproj2/src subproj3/src
Run Code Online (Sandbox Code Playgroud) 我对包含字符串的文件进行了 ack-grep。然后我想在 VIM 垂直拆分窗口视图中打开这些文件。这如何通过终端完成?