ฉันจะสามารถเปิดใช้งานและทำพับโค้ดในกลุ่ม?
ฉันต้องเปลี่ยนอะไร~/.vimrcไหม
ฉันพิมพ์z+ aและz+ cและz+ oและไม่มีอะไรเกิดขึ้น
ฉันจะสามารถเปิดใช้งานและทำพับโค้ดในกลุ่ม?
ฉันต้องเปลี่ยนอะไร~/.vimrcไหม
ฉันพิมพ์z+ aและz+ cและz+ oและไม่มีอะไรเกิดขึ้น
คำตอบ:
ไม่มีคุณไม่ได้ที่จะนำคำสั่งจากหน้าเว็บที่คุณเชื่อมโยงกับในของคุณ~/.vimrcคุณก็สามารถพิมพ์พวกเขาหลังจากที่ออก:ในvimที่จะได้รับพร้อมรับคำสั่ง
อย่างไรก็ตามถ้าคุณใส่สาย:
set foldmethod=indent
set foldnestmax=10
set nofoldenable
set foldlevel=2
ตามที่ระบุในลิงก์ที่คุณให้~/.vimrcคุณไม่ต้องพิมพ์ทุกครั้งที่คุณต้องการใช้การพับในไฟล์ set nofoldenableทำให้แน่ใจว่าเมื่อเปิดไฟล์เป็น "ปกติ" คือไม่ได้พับ
:ที่คุณไม่ควรพิมพ์หลังจากที่ คุณพิมพ์คำสั่งหลังจากที่พรอมต์ที่คุณได้รับเมื่อพิมพ์set คุณพิมพ์เมื่อคุณได้อย่างอิสระสามารถเลื่อนเคอร์เซอร์เช่นเดียวกับที่คุณจะใช้จะได้รับข้อความที่เคอร์เซอร์อยู่ในด้านบนของหน้าจอปัจจุบัน :zczt
วิธีการพับเริ่มต้นของ Vim นั้นmanualหมายถึงว่าการพับจะสร้างขึ้นเอง มิฉะนั้นจะไม่มีเท่าที่จะปิดหรือเปิดการใช้za, zoหรือzcตามที่คุณอธิบาย แต่คุณสามารถสร้างภาพซ้อนได้zf{motion}ในโหมดปกติหรือzfในโหมดภาพ เช่นzfjสร้างเส้นแบ่งสำหรับบรรทัดปัจจุบันและอีกบรรทัดถัดไปในโหมดปกติ
indentคำตอบที่ได้รับการยอมรับโดย @Anthon อธิบายวิธีการตั้งค่าวิธีการพับindent; เช่นการพับถูกกำหนดโดยระดับของการเยื้อง
syntaxในวิธีที่สะดวกยิ่งขึ้นสามารถสร้างการพับได้โดยอัตโนมัติตามไวยากรณ์ภาษาของบัฟเฟอร์ปัจจุบัน หากคุณกำลังใช้ภาษาโปรแกรมเราเรียกมันว่าLและคุณมีคำจำกัดความการพับของL (เช่นคุณได้ติดตั้งปลั๊กอิน Vim ซึ่งข้อมูลการพับของLถูกกำหนดเช่นc.vimสำหรับ C / C ++ หรือpython โหมดสำหรับ Python) คุณเพียงแค่ต้องตั้งค่าวิธีการพับเป็นsyntax:
set foldmethod=syntax
แค่นั้นแหละ. คำสั่งที่มีประโยชน์ที่สุดสำหรับการทำงานกับการพับคือ:
foldlevelโดยหนึ่งfoldlevelโดยหนึ่งfoldlevelถึงศูนย์ - พับทั้งหมดจะเปิดคุณไม่จำเป็นต้องใช้มันอย่างเป็นระบบ: ฉันมักจะเลือกการพับโดยการเคลื่อนไหวหรือส่วนด้วยตนเอง ยกตัวอย่างเช่นพับเป็นวรรคzfipและพับถัดไป 20 zf20jสายคือ ใช้zaเพื่อสลับและzdลบ
ต้องใช้งานเพิ่มอีกเล็กน้อย แต่ช่วยให้การพับของคุณสะท้อนงานในมือ
คุณสามารถเปิดใช้งานfoldingในเซสชันปัจจุบันเช่นคำตอบของ @ Anthon แต่ถ้าคุณต้องการทำให้มันถาวรคุณต้องตั้งค่าอย่างน้อยบรรทัดนี้ใน.vimrcการพับ:
set foldmethod=indent
indent เป็นการพับคุณสามารถดูเพิ่มเติมได้จาก :help foldmethod
'foldmethod' 'fdm' string (default: "manual")
local to window
{not in Vi}
{not available when compiled without the +folding
feature}
The kind of folding used for the current window. Possible values:
fold-manual manual Folds are created manually.
fold-indent indent Lines with equal indent form a fold.
fold-expr expr 'foldexpr' gives the fold level of a line.
fold-marker marker Markers are used to specify folds.
fold-syntax syntax Syntax highlighting items specify folds.
fold-diff diff Fold text that is not changed.
ตอนนี้ทุกครั้งที่คุณเปิดไฟล์ด้วยvimคุณจะเห็นว่าโค้ดถูกพับโดยวิธีที่คุณตั้งไว้ แล้วคุณสามารถใช้za, ,zczo