أداة بحث عن التعليمات البرمجية مشابهة لـ ack
، مع التركيز على السرعة.
هل تعرف ج؟ هل ترغب في تحسين Ag؟ أدعوك إلى الاقتران معي.
ack
..gitignore
و .hgignore
..ignore
. (*السعال* *.min.js
*السعال*)ack
، وجميع المفاتيح موجودة في الصف الرئيسي!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
الخاص بي حوالي 8 جيجابايت. بفضل git/hg/ignore، بحث Ag فقط في 700 ميجابايت من ذلك.
هناك أيضًا رسوم بيانية للأداء عبر الإصدارات.
mmap()
بدلاً من قراءتها في المخزن المؤقت.pcre_study()
قبل تنفيذ نفس التعبير العادي على كل ملف.fnmatch()
على كل نمط في ملفات التجاهل الخاصة بك، يتم تحميل الأنماط غير العادية في المصفوفات ويتم البحث عنها بشكل ثنائي. لقد كتبت العديد من منشورات المدونات التي توضح كيف قمت بتحسين الأداء. يتضمن ذلك كيفية إضافة pthreads، وكتابة scandir()
الخاص بي، وقياس كل مراجعة للعثور على تراجعات الأداء، ووضع ملف تعريف باستخدام gprof وValgrind.
brew install the_silver_searcher
أو
port install the_silver_searcher
Ubuntu >= 13.10 (بذيء) أو Debian >= 8 (جيسي)
apt-get install silversearcher-ag
فيدورا 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
سينت أو إس
yum install the_silver_searcher
نيكس أو إس / نيكس / نيكسبكجس
nix-env -iA silver-searcher
SUSE Linux Enterprise: اتبع هذه التعليمات البسيطة.
فري بي إس دي
pkg install the_silver_searcher
أوبن بي إس دي/نت بي إس دي
pkg_add the_silver_searcher
Win32/64
تتوفر بنيات يومية غير رسمية.
com.winget
winget install "The Silver Searcher"
ملحوظات:
شوكولاتة
choco install ag
MSYS2
pacman -S mingw-w64-{i686,x86_64}-ag
سيجوين
قم بتشغيل setup-*.exe
ذي الصلة، ثم حدد "the_silver_searcher" في فئة "Utils".
تثبيت التبعيات (Automake، pkg-config، PCRE، LZMA):
ماك:
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
سينت أو إس:
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 متاحة هنا.
يتطلب بناء كرات القطران نفس التبعيات، باستثناء 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. أنظر أيضا: هيلم-آغ.
يمكن لمستخدمي 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"