[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**

Medium is an open platform where 170 million readers come to find insightful and dynamic thinking. Here, expert and undiscovered voices alike dive into the heart of any topic and bring new ideas to the surface. Learn more

Follow the writers, publications, and topics that matter to you, and you’ll see them on your homepage and in your inbox. Explore

If you have a story to tell, knowledge to share, or a perspective to offer — welcome home. It’s easy and free to post your thinking on any topic. Write on Medium

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