Vim, cara memuat ulang penyorotan sintaks


Jawaban:


97

Menggunakan :syntax sync fromstart

Saya mendapat tip itu dari http://vim.wikia.com/wiki/Fix_syntax_highlighting

Artikel itu juga menyarankan membuat pemetaan untuk perintah itu, misalnya untuk memetakan F12:

noremap <F12> <Esc>:syntax sync fromstart<CR>
inoremap <F12> <C-o>:syntax sync fromstart<CR>

Ini berfungsi, tetapi menghapus garis bawah untuk pemeriksaan ejaan. Adakah cara untuk mencegahnya?
Alec Jacobson

1
Maaf saya tidak tahu Saya tidak punya apa-apa untuk melakukan pemeriksaan ejaan. Ini mungkin tergantung pada addon khusus Anda. Jika tidak ada orang lain yang menjawab, mungkin ada gunanya membuat pertanyaan dengan semua informasi yang relevan.
Mike Lippert

3
Saya akhirnya menggunakan autocmd BufEnter,InsertLeave * :syntax sync fromstartuntuk memaksa sinkronisasi sintaks setelah saya memasukkan buffer. Sinkronisasi sintaks juga dipicu saat ada InsertLeaveperistiwa yang terjadi.
Samuel Li

Mungkin seseorang akan menganggap ini berguna suatu hari nanti. Gunakan filetype=shatau syntax=shuntuk pesta dan suka, tidak bash. Butuh waktu bagi saya untuk memikirkan yang satu itu.
quapka

Saya menggunakan :do Syntaxpadanan :doautocmd Syntaxyang hanya sedikit lebih pendek sehingga Anda tidak perlu mengikatnya (setidaknya saya tidak perlu memanggil perintah ini sesering itu jadi saya hanya mengetiknya). Saya kebanyakan menggunakannya di beberapa file yang berisi regex yang menyebabkan sorotan sintaks terputus ketika saya membuka file melalui netrw.
Rens Tillmann

54

Mencoba:

:e

Jika Anda tidak memiliki perubahan yang belum disimpan ke file.

Atau:

:syn off | syn on

Buat pemetaan untuk mengurangi rasa sakit, sesuatu sepertinmap <F6> :Rmodel|e<CR>
holygeek

2
Tampaknya harus ada beberapa perintah bawaan untuk menyegarkan penyorotan sintaks. Hal lain yang tampaknya berfungsi adalah melompat ke bagian lain dari file, seperti awal atau akhir, dan melompat kembali, misalnya:gg``
Keith Pinson

2
": syntax sync fromstart" (tanpa tanda kutip) tidak memuat ulang penyorotan sintaks tipe file pada file yang terkadang tidak menunjukkan pewarnaan sintaks - masalah yang sedang berlangsung bagi saya dan Vim, untuk beberapa alasan. Namun, ": syn off | syn on" segera berfungsi. ": e!" juga akan menyelesaikan pemuatan ulang itu, tetapi waspadalah: perubahan yang belum disimpan ke file Anda akan hilang!
Victoria Stuart

:syn off | syn onmengubah
skema warna

12

Mencoba semua hal di atas - tidak ada yang berhasil untuk saya.

Satu-satunya hal yang berhasil adalah: :filetype detect jadi saya memetakan ulang pintasan cepat :noremap <Leader>,ftd :filetype detect


9

Terkadang sintaksnya OK, tetapi yang rusak hanyalah lipatan. Dalam hal itu sangat zxmembantu.

Dari dokumentasi VIM:

zx

Perbarui lipatan: Membatalkan lipatan yang dibuka dan ditutup secara manual: terapkan kembali 'tingkat lipatan', lalu lakukan "zv": Lihat garis kursor. Juga memaksa menghitung ulang lipatan. Ini berguna saat menggunakan 'foldexpr' dan penyangga diubah sedemikian rupa sehingga lipatan tidak diperbarui dengan benar.



-1

Mencoba:

:Rrefresh!

Perintah ini menyegarkan pengaturan cache tertentu dan juga memuat ulang rails.vim .
Ini membantu saya menyegarkan penyorotan sintaks di Rails.


Ini hanya berlaku untuk rails.vimdan bukan solusi umum. Tanpa plugin itu, perintah ini tidak ada.
wchargin

-1

Anda juga dapat mencoba:

CTRL-L

Dari dokumen VIM ( :h CTRL-L):

Hapus dan gambar ulang layar. Gambar ulang dapat terjadi nanti, setelah memproses kepala jenis.


Ctrl-L menyegarkan layar. Tidak ada bedanya jika Anda membuat perubahan pada file sintaks yang sesuai.
Alexis Wilke
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.