เครื่องมือค้นหาโค้ดที่คล้ายกับ ack
โดยเน้นที่ความเร็ว
คุณรู้จักซีไหม? ต้องการปรับปรุง 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()
ed แทนที่จะอ่านลงในบัฟเฟอร์pcre_study()
ก่อนที่จะดำเนินการ regex เดียวกันในทุกไฟล์fnmatch()
ในทุกรูปแบบในไฟล์ละเว้นของคุณ รูปแบบที่ไม่ใช่ regex จะถูกโหลดลงในอาร์เรย์และค้นหาแบบไบนารี ฉันได้เขียนโพสต์ในบล็อกหลายรายการเพื่อแสดงให้เห็นว่าฉันปรับปรุงประสิทธิภาพได้อย่างไร ซึ่งรวมถึงวิธีที่ฉันเพิ่ม pthreads, เขียน scandir()
ของตัวเอง, เปรียบเทียบทุกการแก้ไขเพื่อค้นหาการถดถอยของประสิทธิภาพ และทำโปรไฟล์ด้วย gprof และ Valgrind
brew install the_silver_searcher
หรือ
port install the_silver_searcher
Ubuntu >= 13.10 (ทะลึ่ง) หรือ Debian >= 8 (เจสซี่)
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
openSUSE
zypper install the_silver_searcher
CentOS
yum install the_silver_searcher
NixOS/ห้าม/Nixpkgs
nix-env -iA silver-searcher
SUSE Linux Enterprise: ปฏิบัติตามคำแนะนำง่ายๆ เหล่านี้
ฟรีBSD
pkg install the_silver_searcher
OpenBSD/NetBSD
pkg_add the_silver_searcher
Win32/64
มีงานสร้างรายวันอย่างไม่เป็นทางการ
ปีก
winget install "The Silver Searcher"
หมายเหตุ:
ช็อคโกแลต
choco install ag
เอ็มซิส2
pacman -S mingw-w64-{i686,x86_64}-ag
ซิกวิน
เรียกใช้ setup-*.exe
ที่เกี่ยวข้อง และเลือก "the_silver_searcher" ในหมวดหมู่ "Utils"
ติดตั้งการพึ่งพา (Automake, pkg-config, PCRE, LZMA):
macOS:
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
openSUSE:
zypper source-install --build-deps-only the_silver_searcher
Windows: มันซับซ้อน ดูหน้าวิกินี้
รันสคริปต์บิลด์ (ซึ่งเพิ่งรัน aclocal, automake ฯลฯ ):
./build.sh
บน Windows (ภายในเชลล์ msys/MinGW):
make -f Makefile.w32
ทำการติดตั้ง:
sudo make install
มีเผยแพร่ที่ลงนามโดย GPG ได้ที่นี่
การสร้าง tarball รุ่นต่างๆ จำเป็นต้องมีการขึ้นต่อกันที่เหมือนกัน ยกเว้น automake และ pkg-config เมื่อคุณติดตั้งการขึ้นต่อกันแล้ว ให้รัน:
./configure
make
make install
คุณอาจจำเป็นต้องใช้ sudo
หรือรันเป็นรูทเพื่อทำการติดตั้ง
คุณสามารถใช้ Ag กับ ack.vim ได้โดยเพิ่มบรรทัดต่อไปนี้ใน .vimrc
:
let g:ackprg = 'ag --nogroup --nocolor --column'
หรือ:
let g:ackprg = 'ag --vimgrep'
ซึ่งมีผลเหมือนกันแต่จะรายงานทุกนัดในไลน์
คุณสามารถใช้ ag.el เป็นส่วนหน้าของ Emacs ไปยัง Ag ดูเพิ่มเติมที่: helm-ag
ผู้ใช้ TextMate สามารถใช้ Ag กับปลั๊กอิน AckMate ยอดนิยมของฉันได้ ซึ่งช่วยให้คุณใช้ทั้ง Ack และ 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"