ปลั๊กอิน vim เพื่อปรับปรุงประสบการณ์การค้นหาโปรเจ็กต์เมื่อใช้เครื่องมือเช่น ag และ rg
ฉันได้รับแรงบันดาลใจจากความสามารถของ fzf.vim ในการค้นหาอย่างรวดเร็ว :Ag
ค้นหาหลายคำโดยไม่ใส่เครื่องหมายอัญประกาศ กรองผลลัพธ์หลายรายการให้แคบลงแบบเรียลไทม์ด้วยไวยากรณ์การค้นหาแบบขยาย จากนั้นเติมข้อมูลแบบด่วนสำหรับรีแฟคเตอร์ขนาดใหญ่
:Ag function index
แต่ฉันพบว่าตัวเองขาดความสามารถในการส่งตัวเลือกบรรทัดคำสั่งเหมือนที่ฉันทำกับ ack.vim's :Ack
?
:Ack -Q -i 'function index' vendor
นอกจากนี้ fzf.vim's :Ag
ถือว่าเครื่องหมายคำพูดเป็นส่วนหนึ่งของคำค้นหา ซึ่งไม่สอดคล้องกับ ag
บนบรรทัดคำสั่ง
ดังนั้นจุดประสงค์ของปลั๊กอินนี้คือการนำสิ่งที่ดีที่สุดของทั้งสองโลกมาสู่ Wrapper การค้นหาที่คุณชื่นชอบ ทำการค้นหาหลายคำโดยมีหรือไม่มีเครื่องหมายคำพูด ส่งตัวเลือกบรรทัดคำสั่ง และทำทุกอย่างจากคำสั่งเดียว
อ่านเพิ่มเติมเกี่ยวกับขั้นตอนการค้นหาโปรเจ็กต์ของฉันด้วย fzf.vim และเกษตรกรรม ❤️
ติดตั้งโดยใช้ vim-plug หรือคล้ายกัน:
Plug 'jesseleite/vim-agriculture'
หากคุณใช้ fzf.vim อยู่แล้ว คุณสามารถใช้คำสั่ง :AgRaw
/ :RgRaw
ที่ให้มาได้
:AgRaw func.*index
:AgRaw 'func.*index'
:AgRaw -Q 'function index()' app/Http/Controllers
ในทำนองเดียวกันสำหรับ :RgRaw
เพียงแทนที่ AgRaw
ใน RgRaw
ในตัวอย่างข้างต้น
หากคุณใช้ Wrapper การค้นหาอื่น คุณจะต้องล้อมอินพุตของคุณด้วย agriculture#smart_quote_input()
หากคุณใช้คำสั่งใดคำสั่งหนึ่งที่ให้มา คุณสามารถเชื่อมต่อกับการแมป <Plug>
ที่ให้มาใน .vimrc
:
nmap <Leader>/ <Plug>AgRawSearch
vmap <Leader>/ <Plug>AgRawVisualSelection
nmap <Leader>* <Plug>AgRawWordUnderCursor
ในทำนองเดียวกันสำหรับ :RgRaw
เพียงแทนที่ AgRaw
ใน RgRaw
ในตัวอย่างข้างต้น
หากคุณใช้คำสั่งใดคำสั่งหนึ่งที่ให้มา คุณยังสามารถตั้งค่าตัวเลือกบรรทัดคำสั่งเริ่มต้นใน .vimrc
:
let g:agriculture#ag_options = '--case-sensitive'
ในทำนองเดียวกันสำหรับ :RgRaw
ด้วย g:agriculture#rg_options
หากคุณกำลังใช้คำสั่งใดคำสั่งหนึ่งที่ให้มา และต้องการปิดใช้งานการเสนอราคาอัจฉริยะเพื่อความสอดคล้องของ CLI:
let g:agriculture#disable_smart_quoting = 1
ขณะนี้หน้าต่างแสดงตัวอย่างจะแสดงผลตามค่าเริ่มต้นในคำสั่ง fzf.vim จำนวนมาก หากคุณต้องการปรับแต่งหรือปิดใช้งานลักษณะการทำงานนี้ โปรดดูเอกสารประกอบของ fzf.vim ในหน้าต่างแสดงตัวอย่าง
ข้อมูลที่คุณป้อนจะถูกยกมาโดยอัตโนมัติ เว้นแต่ จะตรงตามเงื่อนไขต่อไปนี้:
:Ag -Q "Already quoted this pattern."
:Ag Why you "scruffy looking nerf herder"!
:Ag Who's scruffy looking?
:Ag -Q function index
:Ag Which way to the beach? -> that way!
:Ag an escaped pattern vendor/folder
TL; DR: หากคุณใช้เครื่องหมายคำพูด ขีดกลาง หรือต้องการผ่านเส้นทาง ขอแนะนำให้คุณเสนอราคา/หลีกรูปแบบของคุณเอง แล้ว vim-agriculture จะไม่เกะกะ ?
แค่แฮ็คเหรอ?