Igen, a grepet és az ezüst_kutatót (ag) elárasztottam a ripgrep használatához.
Akár kénytelen a munkahelyén használni a VIM-et, akár egy olyan őrült VIM-rajongó vagy, mint én, aki a termelékenység iránt rajong, a projektszintű kulcsszókeresés alapvető követelmény, amelyet minden fejlesztőnek meg kell adnia a szerkesztő arzenáljában. És arra számítunk, hogy gyorsan lángol. ⚡️
Körülbelül 3 éve használom a VIM-et. És fennkölt háttérből fakadóan elengedhetetlen volt az egész projektre kiterjedő keresés igénye.
A ripgrep és az ack.vim olyan dolgok voltak, amelyeket korán átvettem a grep és az ezüst_kutató (ag) tapasztalatlan tapasztalataim után. Azóta sem néztem vissza.
Ez a cikk különböző keresőeszközökkel és növekményes fejlesztésekkel végzett kísérlet eredménye, amelyeket egy bizonyos idő alatt végeztem el, amíg megfelelőnek nem tűnt.
Miért éppen az ack.vim & ripgrep?
- Gyors: A Symfony és a JavaScript projekteken dolgoztam több ezer fájllal, és csak gyorsan lángol. Itt található egy gyors összehasonlítás más keresési eszközökkel.
A sebesség mércéje: "soha nem szabad lassúnak érezni". Óriási javulást észleltem, miután elköltöztem a grep, az ezüst_kutató és az ACK-ról.
- Gyors navigáció : Az ack.vim gondoskodik a Gyorsjavítások listájának feltöltéséről, amely lehetővé teszi, hogy az összes keresési eredményt kényelmesen mozgassa a különböző fájlokban.
- Ésszerű alapértelmezések: A ripgrep alapértelmezés szerint a gitignore-t veszi figyelembe, és automatikusan átugorja a rejtett fájlokat / könyvtárakat és a bináris fájlokat.
Áttekintés
Az ack.vim egy VIM beépülő modul, amely burkolóként működik a kulcsszavak kereséséhez és a Gyorsjavítás listájának feltöltéséhez az eredmények navigálásához.
A ripgrep (rg) egy parancssori eszköz, amelyAz ack.vim belsőleg fogja használni a tényleges, az egész projektre kiterjedő keresést.
Lépések
1. lépés : Telepítse a ripgrep programot
Ha jobban szereti a homebrew-t, mint én, futtassa a következőt az rg telepítéséhez:
brew tap burntsushi/ripgrep //github.com/BurntSushi/ripgrep.git brew install burntsushi/ripgrep/ripgrep-bin
Itt van egy automatizált szkript, amelyet a dotfileim részeként használok.
Ha bármilyen más telepítési módot kedvel, olvassa el a ripgrep hivatalos telepítési szakaszát.
2. lépés : Telepítse az ack.vim fájlt
Az ack.vim telepítéséhez a vim-plug csomagkezelő segítségével adja hozzá a következőket a vimrc-be:
Plug 'mileszs/ack.vim'
vagy olvassa el az ack.vim telepítési szakaszát.
3. lépés : Állítsa be az ack.vim fájlt az rg használatához
Adja hozzá a következő konfigurációt a vimrc-be:
" ack.vim --- {{{ " Use ripgrep for searching ⚡️ " Options include: " --vimgrep -> Needed to parse the rg response properly for ack.vim " --type-not sql -> Avoid huge sql file dumps as it slows down the search " --smart-case -> Search case insensitive if all lowercase pattern, Search case sensitively otherwise let g:ackprg = 'rg --vimgrep --type-not sql --smart-case' " Auto close the Quickfix list after pressing '' on a list item let g:ack_autoclose = 1 " Any empty ack search will search for the work the cursor is on let g:ack_use_cword_for_empty_search = 1 " Don't jump to first match cnoreabbrev Ack Ack! " Maps / so we're ready to type the search keyword nnoremap / :Ack! " }}} " Navigate quickfix list with ease nnoremap [q :cprevious nnoremap ]q :cnext
Megjegyzés: let g:ackprg
meghatározza azt a parancsot, amelyet az ack.vim belsőleg futtat.
Vegye figyelembe azt is, hogy rg
itt néhány lehetőséget használunk . Nézze meg a man rg
lehetőséget, hogy módosítsa azokat a lehetőségeket, amelyek megfelelhetnek az Ön igényeinek.
Az ack.vim beállításainak megismeréséhez olvassa el a következő dokumentációt.
Használat
Most, hogy készen állunk, íme a leggyakoribb felhasználási esetek:
Keressen egy szót a kurzor alatt
Nyomja meg a / gombot, majd nyomja meg az Enter billentyűt .
Mivel beállítottuk let g:ack_use_cword_for_empty_search = 1
, Ack visszalép az aktuális szóra a kurzor alatt a kereséshez, ezért nem kell begépelni ezt a szót.
Szó keresése
Nyomja meg a / gombot, majd a szót (idézőjelek nélkül) és írja be.
Mivel intelligens kis- és nagybetűket használunk a ripgrep segítségével, ez kis- és nagybetűk közötti keresést fog végrehajtani, ha a szó mind kisbetűs, máskülönben pedig kis- és nagybetűket keres.

Regex keresés
Nyomja meg a / gombot, majd egy regex mintát idézőjelben és írja be.

Navigálás az eredmények között
Ack.vim populates the results in the Quickfix list, which opens up as a separate bottom window. There are multiple ways to navigate the results list:
- You can navigate the Quickfix list using
j/k
and pressenter
to close the Quickfix list. VIM will take you to the exact location of the found word. - You can also use the hotkeys
]q
or[q
. VIM will move the cursor to the next/previous result and will open the file in a new buffer if required.To close the Quickfix list once you're done, you can either go to the bottom Quickfix window and close it or just run
:cclose
- To open the Quickfix list back up, run
:copen
Closing Note
And there you have it, a seamless search and navigation for your next project-wide keyword search!
If you're stuck anywhere, look for the respective ack.vim and ripgrep docs/issues in their respective repositories, or send me a message. Share the configuration you're proud of, so it can help others improve theirs.
Here are my dotfiles.