“ ปลั๊กอินชนิดไฟล์บน” ทำอะไรได้จริง?


11

ฉันเข้าใจว่ามันโหลดftplugin.vimไฟล์ แต่มันทำอะไรได้จริง? มีการตั้งค่าตัวเลือก (ขึ้นอยู่กับประเภทของไฟล์) หรือไม่?

ถ้าฉันจะรวมบรรทัดนี้ในตอนเริ่มต้นของวิดีโอเพลงของฉัน

filetype plugin indent on

แล้วฉันจะตั้งค่าตัวเลือกบางอย่างหลังจากบรรทัดนี้ (เช่น autoindent, smartindent, ฯลฯ ) มันจะยุ่งกับพวกเขาเหรอ? ฉันจะรู้ได้อย่างไรว่าตัวเลือกใดได้รับผลกระทบจากปลั๊กอินประเภทไฟล์หรือไฟล์ที่เยื้อง

คำตอบ:


7

มีคำอธิบายที่ดีhelp filetypeจริงๆ

ตัวเลือกใด ๆ ที่กำหนดไว้สำหรับประเภทไฟล์จะถูกตั้งค่าด้วยsetlocal:

:setl[ocal] ...     Like ":set" but set only the value local to the
                    current buffer or window.  Not all options have [..]

ตัวอย่างเช่น/usr/share/vim/vim80/ftplugin/javascript.vimกำหนด:

setlocal commentstring=//%s

เนื่องจากตัวเลือกในท้องถิ่นมีลำดับความสำคัญมากกว่าตัวเลือกระดับโลก.vimrcการตั้งค่าของคุณอาจถูกเพิกเฉย ในกรณีนี้คุณต้องสร้างไฟล์~/.vim/after/ftplugin/javascript.vim(ด้วยชื่อไฟล์ที่คุณต้องการเปลี่ยน) และตั้งค่าตัวsetlocalเลือกของคุณเองในนั้น

วิธีที่ง่ายที่สุดที่จะเห็นตัวเลือกที่เป็นชุดเป็นเพียงการเปิดไฟล์สำหรับ filetype ใน/usr/share/vim/vim80/ftplugin, และ../indent../syntax


1
E492: ไม่ใช่คำสั่งบรรณาธิการ: ปลั๊กอินที่ [เหมือนกันสำหรับเยื้องบน]
Tony

ประโยคสุดท้ายของคำตอบนี้ผิด filetype plugin onและfiletype indent onเป็นคำสั่งที่แยกจากกันอย่างแน่นอน แต่ทั้งสองสามารถรวมกันเพื่อให้filetype plugin indent onได้
Ruslan

@ Ruslan ขอบคุณฉันลบประโยคนั้น
laktak

2

มันกำหนดคำสั่งอัตโนมัติที่จะถูกเรียกใช้งานเมื่อไฟล์ที่ตรงกับรูปแบบที่กำหนดเปิดขึ้น คำสั่งอัตโนมัติเหล่านี้sourceจะเปลี่ยนปลั๊กอินประเภทไฟล์ที่เกี่ยวข้องกับประเภทไฟล์ที่รู้จัก

ในสคริปต์ปลั๊กอินประเภทไฟล์คุณจะสามารถค้นหา / เขียนสิ่งที่คุณสามารถใส่ในสคริปต์กลุ่ม การปฏิบัติที่ดีนั้นไม่เคยนิยามสิ่งต่าง ๆ ทั่วโลก แต่เป็นสิ่งในท้องถิ่นโดยเฉพาะ เช่น:

  • ตัวเลือกท้องถิ่นด้วย :setlocal opt=value
  • การแมปท้องถิ่นด้วย :[cnivsxot](nore)map <buffer> ...
  • ตัวย่อในท้องถิ่นด้วย:iab-<buffer> ...& co
  • คำสั่งท้องถิ่นด้วย :command -b ...
  • ตัวแปรท้องถิ่นด้วย :let b:var = 42

เกี่ยวกับ

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