Temukan jenis file apa yang dimuat dalam vim

224

Segera setelah saya memuat file apa pun dalam vim, Ini akan mencoba mendeteksi file dan menyorot warna jika memungkinkan.

Saya ingin tahu perintah vim yang akan memberi tahu saya mana ftplugin atau Filetype plugin / filetype yang mempertimbangkan untuk menyorot file.

ruturaj
sumber
Bukankah vim melakukan itu secara otomatis?
ereOn
Jika Anda meletakkan vimscript di ~ / .vim / ftplugin / ia akan mendapatkan vimscript itu ketika file dari tipe file yang cocok dimuat. Jadi menempatkan setlocal cursorlinedi ~/.vim/ftplugin/python.vimdan Anda akan memiliki baris saat ini menyoroti dalam file python. Lihat :help ftplugindan:help after
idbrii

Jawaban:

365

:set filetype?

hobbs
sumber
39
Anda dapat menyimpan beberapa penekanan tombol dan cukup gunakan:set ft?
Matthew Rankin
35
:se ft?- Saya menang. ;)
sjas
39
:se ft? Saya menang!
Fábio Santos
SO membutuhkan panjang komentar minimum, jadi mungkin tidak jelas bahwa yang terpendek berakhir setelah t. ? adalah opsional.
reergymerej
15

Anda juga dapat menambahkan filetype ke baris status atau judul jendela menggunakan item %ydan %Y. Lihat

:help 'statusline'
:help 'titlestring'
Nefrubyr
sumber
11

&filetype untuk penggunaan skrip

Contoh minimal:

echo &filetype

Contoh penggunaan yang lebih realistis:

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

&sintaks berfungsi untuk semua opsi: /vi/2569/how-do-i-check-the-value-of-a-vim-option-in-vimscript

Ciro Santilli 郝海东 冠状 病 六四 事件 法轮功
sumber
2

Ketika saya ingin menemukan filetype itu karena saya memiliki ekstensi .ipy memodifikasi skrip ipython. T&J di atas berfungsi dengan baik untuk melihat bahwa ekstensi ipython tidak diperlakukan sebagai python (agak jelas). Jadi saya ingin memaksa mengatur filetype, dan saya menemukan ini dari situs vim pernah helfpul. http://vim.wikia.com/wiki/Forcing_Syntax_Coloring_for_files_with_odd_extensions

Menambahkan di bawah ini ke .vimrc Anda berfungsi

au BufRead,BufNewFile *.ipy set filetype=python
Paul
sumber
2

Karena Anda pertama kali menanyakan / mencari pertanyaan ini, saya menganggap Anda melakukan ini karena vim Anda entah bagaimana tidak menyoroti sintaks yang tepat untuk Anda secara otomatis, dan Anda mencoba mencari tahu mengapa, dan bagaimana cara memperbaikinya.

Perintah :set filetype?dalam jawaban yang dipilih pada dasarnya meminta vim "hei menurut Anda apa jenis file saat ini". Dan jika vim tidak menampilkan warna / sorotan yang tepat, kemungkinan besar jawabannya kepada Anda adalah menampilkan ini filetype=di bagian bawah konsol Anda, artinya vim tidak tahu jenis file. Ini hanya setengah dari pencarian Anda.

Secara logis, langkah Anda berikutnya akan mengatakan vim "cukup sorot menggunakan (misalnya) sintaks ps1". Anda melakukannya dengan mengetik :set filetype=ps1, sekarang vim akan menyorot file saat ini menggunakan gaya ps1 (asalkan Anda sudah mengunduh file sintaks powershell yang tepat dan memasukkannya ke ~ / .vim / sintaksis Anda ).

Pada titik ini, Anda mungkin ingin sorot-sintaksis mulai sekarang. Solusinya adalah dengan meletakkan skrip deteksi yang sesuai ke folder ~ / .vim / ftdetect Anda. Misalnya, jika Anda ingin menyorot semua skrip PowerShell .ps1, .psm1, dll., Anda meletakkan file ini ke ~ / .vim / ftdetect Anda

Nah, itu akhir yang bahagia.

RayLuo
sumber