Deteksi bahasa file baru dalam vim (refresh sintaks highlighting)

2

Setiap kali Anda membuka file, vim melakukan serangkaian pemeriksaan untuk menentukan bahasa file dan menerapkan penyorotan sintaksis yang relevan; pertama dengan memeriksa ekstensi file, kemudian dengan melihat ke dalam file itu sendiri. Tidak ada yang baru di sini.

Ketika Anda membuat file baru termasuk ekstensi file, misalnya test.sql, vim secara otomatis menyoroti sintaks SQL untuk apa pun yang Anda ketik - sekali lagi, tidak ada yang baru di sini.

Namun, ketika Anda membuat file baru tanpa ekstensi file tetapi mengandung shebang, misalnya, #!/usr/bin/env pythontampaknya perlu untuk menyimpan file dan membukanya lagi agar vim dapat menerapkan pemeriksaan dan memutuskan bahwa ini adalah skrip python.

Pertanyaan saya adalah apakah ada perintah vim yang memicu pemeriksaan ini, memungkinkan penyegaran penyorotan dalam file baru (tanpa ekstensi), menghindari keharusan untuk membuka kembali file.

Setelah melihat dokumentasi vim untuk memuat sintaksis saya pikir saya akan menemukan sesuatu yang berguna mengenai permintaan saya - sayangnya saya tidak.

Javier Arias
sumber
2
Saya curiga: set ft = python akan bekerja untuk Anda dalam kasus ini.
Josh English

Jawaban:

4

Berikut adalah 3 cara berbeda yang dapat Anda lakukan:

  • :set ft=python. Sisi buruk dari pendekatan ini adalah Anda tidak dapat menambahkannya ke pintasan keyboard karena hanya akan bekerja dengan satu tipe file (python dalam contoh ini)
  • :w+ :eSisi buruknya adalah Anda harus menyimpan file sebelum menjalankan perintah karena reload file.
  • :filetype detect Ini lebih lama untuk mengetik.

Anda bisa menambahkan opsi kedua atau ketiga sebagai pintasan dengan map <C-r> :filetype detect<CR>Anda .vimrcuntuk mengaktifkan menyegarkan file dengan ctrl+r

KNejad
sumber
:filetype detectpersis apa yang saya cari - saya tidak keberatan mengetik - terima kasih banyak!
Javier Arias