ความแตกต่างระหว่างชุดและ: ชุดคืออะไร?


17

ฉันกำลังดูปลั๊กอินที่ใช้งานง่ายของTim Popeและฉันสังเกตเห็นสิ่งนี้ใน README ...

ดูแหล่งข้อมูลสำหรับรายการคุณสมบัติที่เชื่อถือได้ (ไม่ต้องกังวลมันเป็น:setสายส่วนใหญ่)

เมื่อฉันดูที่ต้นทางการ:setโทรเป็นแบบนี้ ...

set autoindent

ไม่มีการก่อน:set

ฉันค่อนข้างแน่ใจว่าฉันเคยเห็น:setในตัวอย่าง.vimrcของจริงเช่นกัน

อะไรคือความแตกต่าง?

ซึ่งรูปแบบที่ฉันควรใช้ในของฉัน.vimrc?

คำตอบ:


22

"สคริปต์" ไม่ทำอะไรมากไปกว่ารันคำสั่ง ex "คำสั่ง ex" คือสิ่งที่คุณพิมพ์เมื่อคุณใช้เป็น:กลุ่ม ตัวอย่างเช่น:wq, :set wrap, :e fileฯลฯ เป็นคำสั่งอดีตทั้งหมด

:ไม่เป็นส่วนหนึ่งของคำสั่ง; มันเป็นเพียงการกดแป้นพิมพ์เพื่อเริ่มโหมดบรรทัดคำสั่ง คุณไม่จำเป็นต้องรวมเสมอ:เช่นเมื่อคุณโยงหลาย ๆ คำสั่งกับ|คุณไม่จำเป็นต้องทำซ้ำ:มากกว่าหนึ่งครั้ง ตัวอย่างเช่น:write | quitจะทำงานได้ดี

เพื่อความสะดวก:อาจรวมอยู่ด้วย สิ่งนี้ช่วยในการคัดลอก / วางและสิ่งนี้ แต่คุณไม่จำเป็นต้องทำ มันไม่สำคัญ ในความเป็นจริง:s ชั้นนำทั้งหมดจะถูกละเว้นเพียงแค่ :write, writeและ:::::::::writeเทียบเท่าทั้งหมดในแง่ของฟังก์ชัน (แม้ว่าจะไม่ชัดเจนในแง่ของความมีสติ)

บ่อยครั้งที่มีประโยชน์ที่จะรวมไว้:ในเอกสารประกอบเพื่อชี้แจงว่านี่เป็นคำสั่ง ex ตัวอย่างเช่นwสามารถอ้างถึง:wหรือคำสั่งโหมดปกติwเพื่อไปที่คำถัดไป

โปรดทราบว่านี้นำไปใช้กับทุกอย่าง โครงสร้างการควบคุมเช่นifและยังendifเป็นเพียงคำสั่ง ex; คุณสามารถพิมพ์สิ่งนี้:

:if 1
:echo 'one'
:endif

จาก commandline Vim ได้ดี; ไม่จำเป็นต้องมี "สคริปต์" สคริปต์ที่เป็นกลุ่มนั้นเป็น "non-magic" และ "non-special"; ทุกสิ่งที่คุณสามารถทำได้จาก commandline ex ที่คุณสามารถทำได้ในสคริปต์ Vim และในทางกลับกัน


6

ไม่มีความแตกต่าง หาก vim เห็น:คำสั่งก่อนหน้าใน vimrc ของคุณ(หรือไฟล์ vimscript ใด ๆ )คำสั่งนั้นจะไม่สนใจ นอกจากนี้ดังกล่าวข้างต้นนี้ไม่ได้เฉพาะกับsetคำสั่ง

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

:help scriptสำหรับข้อมูลเพิ่มเติมเกี่ยวเห็นนี้


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