Cara mengatur filetype vim saat mengedit file konfigurasi nginx

17

Ketika saya membuka vim untuk file seperti /etc/nginx/sites-available/default, penyorotan sintaks berfungsi dengan baik. Tetapi kemudian jika saya membuat file saya sendiri /etc/nginx/sites-available/myapp, vim tidak menyorot sintaksnya. Saya harus lakukan :setf confsetiap waktu.

Apakah ada yang bisa saya masukkan ~/.vimrcuntuk memberi tahu vim "jika Anda tidak tahu sintaks yang digunakan, cukup gunakan conf"?

Sebuah .vimrctemplate untuk vim noob juga menyambut. Saya tidak menggunakannya sebagai IDE, saya menggunakan vim sebagian besar untuk file konfigurasi saja.

Catatan: Saya menggunakan Ubuntu 12, kalau-kalau itu penting.

HappyDeveloper
sumber
Saya mengubah judul Anda agar lebih akurat mencerminkan apa yang Anda coba lakukan dan mengajukan kembali pertanyaan di sini, karena ini dapat berguna dalam kasus umum: serverfault.com/a/390801/2101
MikeyB
@ MikeyB Saya tidak tahu atau peduli tentang 'tipe file', sejauh yang saya tahu vim bisa melakukan penyorotan sintaks hanya dengan melihat kode dan menebak bahasa. Dan bagian utama dari masalahnya adalah bahwa saya menginginkannya sebagai 'secara default'. Saya sudah tahu cara 'mengatur bahasa / filetype saat mengedit'. Juga, apakah itu untuk nginx atau apa pun, tidak relevan. Lakukan seperti yang Anda inginkan, saya tidak pernah mengerti mengapa orang serverfault memutuskan untuk menutup atau mengedit pertanyaan (untuk SEO mungkin?). Kecuali secara tata bahasa yang salah, judul aslinya mencerminkan masalah saya.
HappyDeveloper
3
mungkin menarik: vim.org/scripts/script.php?script_id=1886 (saya menggunakannya dan itu cukup bagus, tambahkan a # vim:syn=nginxdi bagian bawah konfigurasi)
SingleNegationElimination
@ HappyDeveloper: alasan saya mengeditnya adalah karena jawaban Anda yang diterima menunjukkan "Oh, saya benar-benar mencoba melakukan itu." Sekarang pengunjung yang akan datang dapat mencari 'filetipe vim default' atau 'sintaks vim default' dan mendapatkan jawaban yang benar untuk itu alih-alih frustrasi karena jawaban yang diterima tidak mengatakan bagaimana menyelesaikan judul pertanyaan. Plus, sekarang Anda juga tahu cara mengatur filetype default :)
MikeyB
@MikeyB Judul baru bahkan tidak menggunakan kata 'default'. Yang asli lakukan.
HappyDeveloper

Jawaban:

26

Baris berikut dalam ~/.vimrcharus melakukan ini.

autocmd BufRead,BufNewFile /etc/nginx/sites-*/* setfiletype conf
Mgorven
sumber
sedikit koreksi autocmd BufRead, BufNewFile / etc / nginx / sites- / setfiletype conf
1
vim.org/scripts/script.php?script_id=1886 menyediakan penyorotan sintaksis yang lebih baik daripada conffiletype. Jika Anda menggunakan Vundle, coba Plugin 'vim-scripts/nginx.vim'.
Adam Monsen
Untuk semua file .conf, saya menempatkan perintah sebagai berikut:autocmd BufRead,BufNewFile *.conf setfiletype conf
Eren Yilmaz
26

Sebenarnya ada tipe file Nginx yang didefinisikan dalam repositori Nginx resmi di direktori contrib / vim . Ini memberikan highlight sintaks yang lebih baik daripada conf .

Untuk menggunakannya, salin garis deteksi ke .vimrc Anda (dan sesuaikan yang diinginkan):

au BufRead,BufNewFile *.nginx set ft=nginx
au BufRead,BufNewFile */etc/nginx/* set ft=nginx
au BufRead,BufNewFile */usr/local/nginx/conf/* set ft=nginx
au BufRead,BufNewFile nginx.conf set ft=nginx

Kemudian salin nginx.vim ke direktori ~ / .vim / syntax Anda .

Semua file Nginx yang mengikuti aturan di atas sekarang harus disorot.

Jika Anda menginginkan indentasi juga, Anda juga dapat menyalin file dari direktori indent ke dalam .vimrc Anda .

colan
sumber