속도에 초점을 맞춘 ack
와 유사한 코드 검색 도구입니다.
C를 아시나요? Ag를 향상시키고 싶나요? 저와 짝을 이루실 분을 초대합니다.
ack
보다 훨씬 빠릅니다..gitignore
및 .hgignore
의 파일 패턴을 무시합니다..ignore
파일에 추가하기만 하면 됩니다. (*기침* *.min.js
*기침*)ack
보다 33% 짧고 모든 키는 홈 행에 있습니다!Ag는 이제 상당히 안정적입니다. 대부분의 변경 사항은 새로운 기능, 사소한 버그 수정 또는 성능 개선입니다. 내 벤치마크에서는 Ack보다 훨씬 빠릅니다.
ack test_blah ~/code/ 104.66s user 4.82s system 99% cpu 1:50.03 total
ag test_blah ~/code/ 4.67s user 4.58s system 286% cpu 3.227 total
Ack와 Ag는 동일한 결과를 찾았지만 Ag가 34배 더 빨랐습니다(3.2초 대 110초). 내 ~/code
디렉토리는 약 8GB입니다. git/hg/ignore 덕분에 Ag는 그 중 700MB만 검색했습니다.
릴리스 전반에 걸친 성능 그래프도 있습니다.
mmap()
으로 처리합니다.pcre_study()
호출합니다.fnmatch()
호출하는 대신 정규식이 아닌 패턴이 배열에 로드되고 바이너리가 검색됩니다. 나는 성능이 어떻게 향상되었는지 보여주는 여러 블로그 게시물을 작성했습니다. 여기에는 pthread를 추가하는 방법, 자체 scandir()
작성하는 방법, 성능 회귀를 찾기 위해 모든 개정판을 벤치마킹하는 방법, gprof 및 Valgrind를 사용하여 프로파일링하는 방법이 포함됩니다.
brew install the_silver_searcher
또는
port install the_silver_searcher
Ubuntu >= 13.10(Saucy) 또는 Debian >= 8(Jessie)
apt-get install silversearcher-ag
Fedora 21 이하
yum install the_silver_searcher
페도라 22+
dnf install the_silver_searcher
RHEL7+
yum install epel-release.noarch the_silver_searcher
젠투
emerge -a sys-apps/the_silver_searcher
아치
pacman -S the_silver_searcher
슬랙웨어
sbopkg -i the_silver_searcher
오픈수세
zypper install the_silver_searcher
CentOS
yum install the_silver_searcher
NixOS/Nix/Nixpkgs
nix-env -iA silver-searcher
SUSE Linux Enterprise: 다음의 간단한 지침을 따르세요.
FreeBSD
pkg install the_silver_searcher
오픈BSD/NetBSD
pkg_add the_silver_searcher
Win32/64
비공식 일일 빌드를 사용할 수 있습니다.
날개
winget install "The Silver Searcher"
참고:
초콜릿 같은
choco install ag
MSYS2
pacman -S mingw-w64-{i686,x86_64}-ag
시그윈
관련 setup-*.exe
실행하고 "Utils" 카테고리에서 "the_silver_searcher"를 선택하십시오.
종속성 설치(Automake, pkg-config, PCRE, LZMA):
맥OS:
brew install automake pkg-config pcre xz
또는
port install automake pkgconfig pcre xz
우분투/데비안:
apt-get install -y automake pkg-config libpcre3-dev zlib1g-dev liblzma-dev
페도라:
yum -y install pkgconfig automake gcc zlib-devel pcre-devel xz-devel
CentOS:
yum -y groupinstall "Development Tools"
yum -y install pcre-devel xz-devel zlib-devel
오픈수세:
zypper source-install --build-deps-only the_silver_searcher
윈도우: 복잡해요. 이 위키 페이지를 참조하세요.
빌드 스크립트를 실행합니다(aclocal, automake 등만 실행).
./build.sh
Windows의 경우(msys/MinGW 쉘 내부):
make -f Makefile.w32
설치를 확인하세요:
sudo make install
GPG 서명 릴리스는 여기에서 확인할 수 있습니다.
릴리스 tarball을 빌드하려면 automake 및 pkg-config를 제외하고 동일한 종속성이 필요합니다. 종속성을 설치한 후 다음을 실행하세요.
./configure
make
make install
make 설치를 위해 sudo
사용하거나 루트로 실행해야 할 수도 있습니다.
.vimrc
에 다음 줄을 추가하여 ack.vim과 함께 Ag를 사용할 수 있습니다.
let g:ackprg = 'ag --nogroup --nocolor --column'
또는:
let g:ackprg = 'ag --vimgrep'
동일한 효과가 있지만 라인의 모든 일치를 보고합니다.
ag.el을 Ag에 대한 Emacs 프런트 엔드로 사용할 수 있습니다. 참조: helm-ag.
TextMate 사용자는 검색에 Ack와 Ag를 모두 사용할 수 있는 인기 있는 AckMate 플러그인 포크와 함께 Ag를 사용할 수 있습니다. 이미 AckMate가 있는 경우 Ack를 Ag로 바꾸려면 "~/Library/Application Support/TextMate/PlugIns/AckMate.tmplugin/Contents/Resources/ackmate_ack"
이동하거나 삭제하고 ln -s /usr/local/bin/ag "~/Library/Application Support/TextMate/PlugIns/AckMate.tmplugin/Contents/Resources/ackmate_ack"
실행하세요. ln -s /usr/local/bin/ag "~/Library/Application Support/TextMate/PlugIns/AckMate.tmplugin/Contents/Resources/ackmate_ack"