ฉันจะสามารถเปิดใช้งานและทำพับโค้ดในกลุ่ม?
ฉันต้องเปลี่ยนอะไร~/.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
คุณพิมพ์เมื่อคุณได้อย่างอิสระสามารถเลื่อนเคอร์เซอร์เช่นเดียวกับที่คุณจะใช้จะได้รับข้อความที่เคอร์เซอร์อยู่ในด้านบนของหน้าจอปัจจุบัน :
zc
zt
วิธีการพับเริ่มต้นของ 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
, ,zc
zo