如何在Windows上安装和使用ack库?

raj*_*lai 67 windows perl ack

我从未使用过Perl,但我对ack印象深刻,我想用它来搜索源代码等.

任何人都可以指导我如何在Windows上使用这个优秀的库?

Nif*_*fle 78

首先安装perl http://strawberryperl.com/

通过键入(在Windows命令shell中)安装App :: Ack

C:\>cpan App::Ack
Run Code Online (Sandbox Code Playgroud)

毫无疑问,这将证明是有用的http://learn.perl.org/

  • 请注意,使用strawberryperl的可移植版本时,strawberryperl的目录不能包含空格,否则会出现奇怪的错误. (6认同)

Rob*_*ler 38

并非所有测试都通过所有版本的Windows.即使安装测试失败,您也很可能从ack获得100%的功能.如果失败的测试阻止正常安装,则强制安装的命令如下:

perl -MCPAN -e "CPAN::Shell->force(qw(install App::Ack));"
Run Code Online (Sandbox Code Playgroud)

  • 谢谢,这让我真的安装好了!:d (3认同)

Ric*_*ich 32

如果您已经安装了msysgit,那么您不需要安装Perl,因为您已经有了版本.您只需要下载独立版本的ack并将其放在bash路径1中的某个位置.然后,您可以从msysgit bash提示符运行ack.

如果您还希望能够从Windows命令提示符运行ack,则需要在Windows路径2的某处创建一个批处理脚本,其中包含以下内容:

@"C:\Program Files\Git\bin\perl" C:\path\to\ack-standalone.pl %*
Run Code Online (Sandbox Code Playgroud)

(您显然需要编辑上面的路径以匹配您的msysgit安装以及放置ack脚本的位置.)

1:我刚刚把它放在mysysgit bin目录中:C:\Program Files\Git\bin\ack.这不是最合理的位置,但它有效.
2:同样,我刚刚ack.bat在msysgit bin目录中创建了该文件C:\Program File\Git\bin.

  • 我只是在`C:\ Program Files\Git\bin`中删除`ack-standalone.pl`,使用文件名`ack`(不带扩展名).在此之后,从Git Bash运行`ack`工作.不需要批处理文件或修改路径. (5认同)
  • @Grilse是的,在我的回答中我说的是(虽然我想我可以更清楚地说明这一点).如果希望脚本在Windows的命令提示符下运行,则必须使用批处理文件和路径修改.(其中,我可以更好地解释.) (2认同)

Swo*_*gan 23

如果安装了cygwin,则只需下载独立版本即可.Perl与cygwin一起安装.以下是步骤:

$ vim .bash_profile
Run Code Online (Sandbox Code Playgroud)

删除行中的注释:

# if [ -d "${HOME}/bin" ] ; then
#  PATH="${HOME}/bin:${PATH}"
# fi
Run Code Online (Sandbox Code Playgroud)

加载更改:

$ source .bash_profile
Run Code Online (Sandbox Code Playgroud)

创建一个bin目录:

$ mkdir ~/bin
Run Code Online (Sandbox Code Playgroud)

下载ack(来自主页):

$ curl https://beyondgrep.com/ack-2.22-single-file > ~/bin/ack && chmod 0755 ~/bin/ack
Run Code Online (Sandbox Code Playgroud)

注意:您必须手动安装curl,因为默认情况下不会附带cygwin.


Jay*_*Jay 19

您还应该运行以下命令以启用颜色突出显示: cpan Win32 :: Console :: ANSI

  • 这应该是评论,而不是答案,因为它*不是*答案。 (3认同)

h-r*_*rai 6

没有什么对我有用,直到我访问 ack 网站并看到了这个。

在此输入图像描述

我在 cmd 提示符下运行了以下命令:

choco install ack
Run Code Online (Sandbox Code Playgroud)


Tom*_*Tom 5

我不得不强制安装cpan,App::Ack因为有些测试没有通过:

C:\> cpan
cpan> force install App::Ack
cpan> q
Run Code Online (Sandbox Code Playgroud)