มีวิธีการแสดงส่วนที่พับเป็นต้นไม้หรือไม่?


10

การพับเป็นประโยชน์ในการซ่อนส่วนต่าง ๆ ของเอกสาร การแสดงภาพโครงสร้างพับเป็นต้นไม้จะเป็นประโยชน์ในการทำความเข้าใจโครงสร้างเอกสารได้อย่างรวดเร็ว

คำตอบ:


11

คุณสามารถใช้:set foldcolumn=<number>เพื่อแสดง<number>คอลัมน์กว้างที่พยายามแสดงระดับการพับ มันจะมีลักษณะเช่นนี้โดยค่าเริ่มต้น (ด้วยวิธีการพับเครื่องหมาย, การใช้{{{และ}}}):

-    {{{ Top Level Fold
|-   {{{ Nested Fold
||-  {{{ Deepest Fold
|||  }}}
||   }}}
|-   {{{ Another Nested Fold
||   }}}
|    }}}

อย่างไรก็ตามสิ่งนี้กินอสังหาริมทรัพย์แนวนอนค่อนข้างมาก อีกวิธีหนึ่งคือการเขียนการfoldtext()ใช้งานแบบกำหนดเองซึ่งจะอ่านระดับรอยพับด้วยfoldlevel()และรูปแบบตามนั้น สิ่งนี้จะทำให้พื้นที่แนวนอนน้อยลง แต่จะไม่เป็นประโยชน์สำหรับการเข้าใจต้นไม้เนื่องจากคุณไม่สามารถมองเห็นรอยพับใต้รอยพับที่ยุบตัวลง ตัวอย่างเช่น.vimrc:

set foldtext=CustomFoldText()
function! CustomFoldText()
  let line = getline(v:foldstart) . "..."
  return repeat("--| ", v:foldlevel) . line
endfunction

มีปลั๊กอินที่ให้การแสดงภาพประกอบเพลงตามลำดับชั้นของ fold เช่นfolddigest.vimเช่นกัน พวกมันทำงานโดยการแยกระดับการพับของทุกบรรทัดสร้างโครงสร้างข้อมูลที่เหมาะสมและทิ้งการสร้างภาพข้อมูลของโครงสร้างข้อมูลไปยังบัฟเฟอร์ใหม่ คุณอาจปรับเทคนิคให้เหมาะกับความต้องการของคุณ

นอกจากนี้คุณยังอาจต้องการที่จะดูที่ปลั๊กอินที่ให้ "คู่มือการเยื้อง" เช่นนี้ ฉันไม่เคยใช้มันเป็นการส่วนตัวและฉันได้ยินว่าพวกเขาทำให้เกิดปัญหาประสิทธิภาพการทำงานบางคนเนื่องจากโดยทั่วไปแล้วพวกเขาเกี่ยวข้องกับการสร้างไฮไลต์การจับคู่ที่กำหนดเองจำนวนมากผ่านmatchadd()แต่ระยะทางของคุณอาจแตกต่างกันไป

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.