ค้นหาประเภทไฟล์ที่โหลดในกลุ่ม


224

ทันทีที่ฉันโหลดไฟล์ใด ๆ เป็นกลุ่มมันจะพยายามตรวจจับไฟล์และเน้นสีถ้าเป็นไปได้

ฉันต้องการทราบคำสั่ง vim ที่จะบอกฉันว่า ftplugin หรือ Filetype plugin / filetype ใดเป็นกลุ่มที่พิจารณาเป็นกลุ่มเพื่อเน้นไฟล์


ไม่เป็นกลุ่มทำโดยอัตโนมัติที่?
ereOn

หากคุณใส่ vimscript ใน ~ / .vim / ftplugin / มันจะเป็นแหล่งนั้น vimscript เมื่อไฟล์ของประเภทไฟล์ที่ตรงกันถูกโหลด ดังนั้นใส่setlocal cursorlineใน~/.vim/ftplugin/python.vimและคุณจะมีบรรทัดปัจจุบันไฮไลต์ในแฟ้มหลาม ดู:help ftpluginและ:help after
idbrii

คำตอบ:


365

:set filetype?


39
คุณสามารถบันทึกการกดแป้นบางอย่างและใช้เพียง:set ft?
Matthew Rankin

35
:se ft?- ผมชนะ. ;)
sjas

39
:se ft? ฉันชนะ!
Fábio Santos

tดังนั้นต้องมีขั้นต่ำในการแสดงความคิดเห็นความยาวดังนั้นมันอาจจะไม่เป็นที่ชัดเจนว่าจะสิ้นสุดลงหลังจากที่สั้นที่สุด ? เป็นตัวเลือก
reergymerej

15

คุณยังสามารถเพิ่มประเภทไฟล์ลงในบรรทัดสถานะหรือชื่อหน้าต่างโดยใช้รายการ%yและ %Yดู

:help 'statusline'
:help 'titlestring'

11

&filetype สำหรับการใช้งานสคริปต์

ตัวอย่างที่น้อยที่สุด:

echo &filetype

ตัวอย่างการใช้งานที่สมจริงยิ่งขึ้น:

if &filetype ==# 'c' || &filetype ==# 'cpp'
  setlocal noexpandtab
endif

&ไวยากรณ์ใช้งานได้สำหรับตัวเลือกทั้งหมด: /vi/2569/how-do-i-ch--th-value-of-a-vim-option-in-vimscript


2

เมื่อฉันต้องการค้นหาประเภทไฟล์มันเป็นเพราะฉันมีนามสกุล. ipy ที่ปรับเปลี่ยนสคริปต์ ipython คำถามและคำตอบข้างต้นทำงานได้ดีมากเมื่อเห็นว่าส่วนขยายของ ipython ไม่ได้รับการปฏิบัติเหมือนเป็นงูใหญ่ (ค่อนข้างชัดเจน) ดังนั้นฉันต้องการบังคับให้ตั้งประเภทไฟล์และฉันพบสิ่งนี้จากไซต์ที่เป็น helfpul vim http://vim.wikia.com/wiki/Forcing_Syntax_Coloring_for_files_with_odd_extensions

การเพิ่มด้านล่างลงใน. vimrc ของคุณทำงาน

au BufRead,BufNewFile *.ipy set filetype=python

2

เมื่อคุณถาม / ค้นหาคำถามนี้ตั้งแต่แรกฉันคิดว่าคุณทำเช่นนี้เพราะเสียงเรียกเข้าของคุณไม่เน้นไวยากรณ์ที่เหมาะสมสำหรับคุณโดยอัตโนมัติและคุณพยายามหาสาเหตุและวิธีแก้ไข

คำสั่ง:set filetype?ในคำตอบที่เลือกจะถามเป็นกลุ่ม "เฮ้คุณคิดว่าไฟล์ปัจจุบันเป็นประเภทใด" และหากเสียงเรียกเข้าไม่แสดงสี / การเน้นที่เหมาะสมน่าจะเป็นคำตอบสำหรับคุณที่แสดงfiletype=ที่ด้านล่างของคอนโซลของคุณซึ่งหมายความว่าเสียงเรียกเข้าไม่ทราบประเภทไฟล์ นี่เป็นเพียงครึ่งหนึ่งของภารกิจของคุณ

ขั้นตอนต่อไปของคุณจะบอก vim ว่า "เพียงแค่ไฮไลต์โดยใช้ (ตัวอย่าง) ไวยากรณ์ ps1" คุณทำได้โดยพิมพ์:set filetype=ps1ตอนนี้เป็นกลุ่มจะเน้นไฟล์ปัจจุบันโดยใช้สไตล์ ps1 (โดยที่คุณได้ดาวน์โหลดไฟล์ไวยากรณ์ powershell ที่เหมาะสมและใส่ลงใน ~ / .vim / ไวยากรณ์ของคุณ )

ณ จุดนี้คุณอาจต้องการไฮไลต์ไวยากรณ์อัตโนมัติตั้งแต่บัดนี้เป็นต้นไป วิธีแก้ไขคือการวางสคริปต์การตรวจจับที่สอดคล้องกันลงในโฟลเดอร์ ~ / .vim / ftdetect ของคุณ ตัวอย่างเช่นหากคุณต้องการไฮไลต์สคริปต์ PowerShell ทั้งหมด. ps1, .psm1 ฯลฯ คุณใส่ไฟล์นี้ลงใน ~ / .vim / ftdetect ของคุณ

ตอนนี้เป็นตอนจบที่มีความสุข

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