Warna latar yang berbeda untuk beberapa tipe file dalam vim

10

Apakah mungkin untuk memiliki warna latar belakang yang berbeda dalam vim (mis. Satu cahaya, satu gelap) ketika berurusan dengan file dengan banyak tipe file (mis. :set ft=html.php)? Dalam kode PHP dengan HTML yang disematkan, mungkin sulit untuk melihat satu pernyataan PHP di antara banyak baris HTML, lihat di bawah. Saya akan puas dengan apa pun, baik itu warna bg berbeda, penanda di margin, margin kiri kedua (plugin satu vim melakukan ini untuk tanda), mungkin menyoroti <?phptag misalnya (meskipun itu kurang dari ideal)

PHP dalam Kode HTML

EDIT: Saya tidak berpikir ini mungkin pada tingkat sintaksis karena sintaks tampaknya menggunakan sejumlah elemen (String, Function, Identifier ...). Ini tidak diragukan untuk memungkinkan integrasi yang mudah dengan tema warna. SyntaxAttr adalah plugin yang bagus untuk menunjukkan ini. Letakkan di bagian mana pun dari kode dan itu akan memberi tahu Anda apa kelompok sintaks itu.

puk
sumber
Mungkin Anda bisa menggunakan solusi yang sama seperti pada posting ini stackoverflow.com/questions/4167425/… di mana mereka membuat skema warna khusus yang menyoroti string apa pun yang dimulai dengan sql_.
1
Saya akan melihat apakah saya bisa mendapatkannya untuk mendeteksi daerah antara ?>dan <?bukan PHP.
puk

Jawaban:

1

Solusi potensial lainnya adalah menyesuaikan file colorscheme favorit Anda untuk memeriksa pengaturan 'latar belakang'. Banyak yang mengatur pengaturan 'latar belakang' dengan satu cara atau yang lain, tetapi dapat diperiksa untuk mengubah apa warna yang disorot.

Contohcheme warna


" Search
if &background=="dark"
  hi IncSearch    gui=UNDERLINE guifg= ctermfg=
else " background is light
  hi IncSearch    gui=UNDERLINE guifg= ctermfg=
fi

pottsdl
sumber
Apakah ada cara untuk memeriksa bahasa kata / karakter? yaitu apakah itu HTML v PHP?
puk
Agak tergantung. Anda dapat memeriksa jenis hightlighting untuk kata tertentu. Dan jika itu bisa dibedakan antara HTML dan PHP, Anda pasti tahu. Tapi saya pikir itu adalah yang terbaik yang akan Anda dapatkan tanpa banyak pekerjaan ekstra. Gunakan sesuatu seperti berikut ini untuk mendapatkan tipe highlight:: echo synIDattr (synID (line ("."), Col ("."), 1), "name")
pottsdl