[Part 7] Coding on Vim: การค้นหาไฟล์และค้นหาโค้ดใน Vim

NSLog0
NSLog0
Mar 12 · 2 min read

โพสเก่าจาก Blog เดิม สิงหาคม 31, 2017

Image for post
Image for post

บทความ Coding on Vim ตอนที่ 7 นะครับ สำหรับตอนนี้ผมจะมาแนะนำ Plugin ที่ช่วยให้เราทำการค้นหาไฟล์และโค้ดที่อยู่ในโปรเจคเราได้เหมือนกับการใช้พวก IDE ตัวอื่นๆ ซึ่งใน vim เองก็ทำได้นะครับ และเป็น plugin ที่แนะนำว่าควรจะต้องลงนะครับ สำหรับใครที่ใช้ vim ในการเขียนโปรแกรมเป็นหลัก เดี๋ยวเรามาทำความรู้จักกันเลยครับ


[Search file] junegunn/fzf.vim [Github]

Image for post
Image for post

หน้าตาตอนที่เราเรียกฟังก์ชันการค้นหาไฟล์มันก็จะเป็นประมาณนี้ครับ เราก็พิมพ์สิ่งที่เราอยากได้เท่านั้นเอง เดี๋ยวมันก็จะฟิลเตอร์ให้เราและการเรียกใช้งานเราก็พิมพ์แค่ :FZF หรือ :Filesก็จะมีหน้าต่างออกมาแบบด้านบน


[Search code] junegunn/fzf.vim

ในการค้นหาโค้ดเราก็ใช้ Plugin เดียวกันครับ เพียงแต่เราจะเรียกฟังก์ชันที่ชื่อ :Ag แทนและเราก็จะได้หน้าตาแบบนี้

Image for post
Image for post

เพิ่มเติมนิดนึงอันนี้เหมือน Plugin ตอนนี้เหมือนมี Bug อยู่ พอดีผมเพิ่งอัพเดทแล้วปรากฏว่ามันไม่อ่านไฟล์เข้ามาใน Buffer ให้ไม่รู้ทำไมและตอนนี้ได้รายงาน Bug ให้ไปใน Github แล้วใครที่รออัพเดทไปตามกันได้ที่ลิ้งนี้ครับ link เดียวถ้ามีอัพเดทอะไรผมจะมาเพิ่มให้และแก้ไขในบทความให้นะครับ

อัพเดท: พอดีว่า contributor เขามาช่วยตอบแล้วว่าทำไมฟังก์ชัน Ag ถึงใช้งานไม่ได้นะครับ ลองเข้าไปอ่านที่ issue [link] แต่ผมลองทำตามแล้วยังไม่ได้เหมือนกันแต่ไว้แก้แล้วยังไงจะเข้ามาอธิบายเพิ่มครับ

อัพเดท: ตอนนี้ผมแก้ได้แล้วคือว่าตัว fzf ที่ติดตั้งไปมันดันไปเรียกติดตั้ง dependency ไม่หมด เพราะงั้นให้ติดตั้งตัว ggreer/the_silver_searcher ลงไป หากใครที่ไม่สามารถเรียกฟังก์ชัน Ag ได้ก็จะแก้ปัญหาได้ครับ และใน vimrc ให้ใส่โค้ดส่วนนี้ลงไป link


Keyboard setting

ปกติแล้วมันพิมพ์ก็จะไม่ถนัดเท่าไร อะไรที่ใช้บ่อยๆ ผมก็เอามามันไปทำเป็นคีย์ให้กดได้ง่ายๆ เช่น :ZFZ|:Files ผมก็ใส่คีย์ให้มันเป็น

map <leader>f :FZF<CR>

และการค้นหา content ผมก็ใส่เป็น

map <leader>a :Ag<CR>

เท่านี้เราก็ไม่ต้องพิมพ์อะไรให้มันยากๆ แล้ว อะที่ใช้บ่อยๆ ก็ใส่คีย์ให้มันสะ และสำหรับ leader คีย์ ผมเคยอธิบายไปตอนก่อนหน้านี้แล้วมันคือ \ นั้นเองครับ เวลาใช้งานก็กด \ ไปที่นึงแล้วตามด้วยคีย์ที่เราได้ผูกไว้เท่านี้เองครับ

จริงๆ แล้ว fzf.vim มีคำสั่งให้เล่นมากมายครับ สำหรับใครที่อยากรู้อะไรเพิ่มเติมก็ลองเข้าไปอ่านตรงนี้ดูรายชื่อคำสั่ง link และสำหรับบทความนี้ก็คงจบเท่านี้ถ้ามีอะไรดีๆ ผมจะมาอัพเดทให้เรื่อยๆ นะครับ ผมก็ขอจบบทความชุด Coding on Vim ไว้เพียงแค่ 7 ตอนนะครับไว้มีไรมาอัพเดทอีกไหมเดียวผมขอหาข้อมูลเพิ่มเติมและเดียวกับมาพบกันใหม่ ขอบคุณที่ติดตามกันมาตลอดเลยครับ

AlgorithmTut

May the force be with you. **Tut stand for Tutorial**

Welcome to a place where words matter. On Medium, smart voices and original ideas take center stage - with no ads in sight. Watch

Follow all the topics you care about, and we’ll deliver the best stories for you to your homepage and inbox. Explore

Get unlimited access to the best stories on Medium — and support writers while you’re at it. Just $5/month. Upgrade

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store