หนึ่งค้นหารูปแบบในเอาต์พุตคำสั่ง ex ได้อย่างไร ตัวอย่างเช่นวิธีค้นหารูปแบบชื่อไฟล์ในผลลัพธ์ของ:scriptnames
คำสั่ง ในความช่วยเหลือสำหรับทุกรสชาติgrep
และvimgrep
มีเพียง{file}
เป็นสถานที่ที่จะทำการค้นหา
หนึ่งค้นหารูปแบบในเอาต์พุตคำสั่ง ex ได้อย่างไร ตัวอย่างเช่นวิธีค้นหารูปแบบชื่อไฟล์ในผลลัพธ์ของ:scriptnames
คำสั่ง ในความช่วยเหลือสำหรับทุกรสชาติgrep
และvimgrep
มีเพียง{file}
เป็นสถานที่ที่จะทำการค้นหา
คำตอบ:
คุณสามารถทำได้:
:redir => scriptn | sil exe 'scriptnames' | redir end | echo(system('grep pattern',scriptn))
มันทำอะไร:
:redir => scriptn "redirect following output to variable scriptn
:sil exe 'scriptnames' "silently execute scriptnames
:redir end "end the redirection
:echo(system('grep pattern',scriptn)) "echo the call of grep witht that input with the pattern `pattern`
:filter
คำสั่งเป็นวิธีการที่ง่ายหนึ่งบรรทัดนี้
:filter /indent/ scriptnames
จะแสดงเฉพาะบรรทัดที่ตรงกับรูปแบบindent
จากผลลัพธ์ของ:scriptnames
คำสั่ง
ฉันเห็น:redir
การแก้ปัญหาที่มุ่งเน้นคำถามเหล่านี้บ่อยๆซึ่งใช้ได้ดีและมีพลังและตัวเลือกมากมาย แต่ฉันรู้สึกว่ามันเกินความจริงเล็กน้อยเมื่อไม่ได้มากไปกว่านี้คุณต้องตรวจสอบอย่างรวดเร็วว่ามีบางอย่างอยู่หรือไม่ :filter
สะดวกในการใช้งานในขณะนี้และง่ายตาย
ก่อนอื่นคุณต้องดึงเอาท์พุทscriptnames
และใส่ลงในบัฟเฟอร์
คุณสามารถใช้:redir
สำหรับ:
:redir @a " redirect output of following ex commands to register a
:scriptnames " press G to get to the end of the output if it's too long
:redir END " end the redirection
:vnew " new buffer in vertical window
:put a " put content of register
/pattern " search for 'pattern'
ที่กล่าวว่า:scriptname
ผลลัพธ์ที่ยาวเกินไปที่จะสแกนด้วยตาของคุณเองอาจเป็นอาการของปัญหาที่ลึกกว่า
:scriptnames
มีความยาวมากกว่ารัฐธรรมนูญคุณอาจพิจารณาติดตั้งทิมสมเด็จพระสันตะปาปาscriptease มันมีฟังก์ชั่น:Scriptnames
ที่ทำให้ขยะทั้งหมดนั้นอยู่ในรายการโปรแกรมแก้ไขด่วน คุณสามารถค้นหาเนื้อหาของหัวใจบันทึกลงในไฟล์หรือไปที่สคริปต์ที่เกี่ยวข้อง
NERDTree
ควรใส่ฟังก์ชั่นทั้งหมดในไฟล์เดียวเพื่อให้การส่งออกของ:scriptnames
สั้น? มันจะทำให้เป็นปลั๊กอินที่ดีกว่าไหม