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 python
tampaknya 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.
sumber
Jawaban:
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
+:e
Sisi 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.vimrc
untuk mengaktifkan menyegarkan file denganctrl
+r
sumber
:filetype detect
persis apa yang saya cari - saya tidak keberatan mengetik - terima kasih banyak!