Vim, cách tải lại tô sáng cú pháp


Câu trả lời:


95

Sử dụng :syntax sync fromstart

Tôi nhận được mẹo đó từ http://vim.wikia.com/wiki/Fix_syntax_highlighting

Bài báo đó cũng gợi ý tạo một ánh xạ cho lệnh đó, ví dụ ánh xạ F12:

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

Điều này hoạt động, nhưng loại bỏ gạch chân để kiểm tra chính tả. Bất kỳ cách nào để ngăn chặn điều đó?
Alec Jacobson

1
Xin lỗi tôi không biết. Tôi không có bất cứ điều gì để kiểm tra chính tả. Nó có thể phụ thuộc vào addon cụ thể của bạn. Nếu không có ai khác trả lời, bạn nên soạn một câu hỏi với tất cả các thông tin liên quan.
Mike Lippert

3
Tôi cuối cùng sử dụng autocmd BufEnter,InsertLeave * :syntax sync fromstartđể buộc đồng bộ hóa cú pháp sau khi tôi nhập bộ đệm. Đồng bộ hóa cú pháp cũng được kích hoạt khi có InsertLeavesự kiện xảy ra.
Samuel Li

Có thể một ngày nào đó ai đó sẽ thấy điều này hữu ích. Sử dụng filetype=shhoặc syntax=shđể bash và thích, không bash. Đã đến lúc nào đó tôi phải tìm ra điều đó.
quapka

Tôi đang sử dụng lệnh :do Syntaxtương đương :doautocmd Syntaxngắn hơn một chút nên bạn không cần phải ràng buộc nó (ít nhất tôi không phải gọi lệnh này thường xuyên nên tôi chỉ cần nhập nó). Tôi chủ yếu sử dụng nó trong một số tệp có chứa regexes khiến đánh dấu cú pháp bị hỏng khi tôi mở tệp qua netrw.
Rens Tillmann

53

Thử:

:e

Nếu bạn không có thay đổi nào chưa được lưu đối với tệp.

Hoặc là:

:syn off | syn on

Tạo một bản đồ để xoa dịu nỗi đau, một cái gì đó giống nhưnmap <F6> :Rmodel|e<CR>
holygeek

2
Có vẻ như cần có một số lệnh nội trang để làm mới tô sáng cú pháp. Cái gì khác mà dường như làm việc là để nhảy đến một phần khác của tập tin, như đầu hoặc cuối cùng, và nhảy trở lại, ví dụ như:gg``
Keith Pinson

2
": cú pháp đồng bộ từ bắt đầu" (không có dấu ngoặc kép) đã không tải lại loại tệp đánh dấu cú pháp trên các tệp đôi khi không hiển thị màu cú pháp - một vấn đề đang diễn ra đối với tôi và Vim, vì một số lý do. Tuy nhiên, ": syn off | syn on" ngay lập tức phát huy tác dụng. ": e!" cũng sẽ hoàn thành việc tải lại đó, nhưng hãy cẩn thận: các thay đổi chưa lưu đối với tệp của bạn sẽ bị mất!
Victoria Stuart

:syn off | syn onthay đổi colourscheme cho tôi, điều này thật khó chịu
naught101

12

Đã thử tất cả những điều trên - không có cách nào phù hợp với tôi.

Điều duy nhất hoạt động là: :filetype detect vì vậy tôi đã ánh xạ lại một phím tắt nhanh :noremap <Leader>,ftd :filetype detect


9

Đôi khi cú pháp là OK, nhưng tất cả những gì đang bị phá vỡ là các nếp gấp. Trong trường hợp đó zxsẽ giúp rất nhiều.

Từ tài liệu VIM:

zx

Cập nhật các nếp gấp: Hoàn tác các nếp gấp đã mở và đóng theo cách thủ công: áp dụng lại 'nếp gấp', sau đó thực hiện "zv": Xem dòng con trỏ. Cũng buộc tính toán lại các nếp gấp. Điều này rất hữu ích khi sử dụng 'foldexpr' và bộ đệm bị thay đổi theo cách dẫn đến các nếp gấp không được cập nhật đúng cách.



-1

Thử:

:Rrefresh!

Lệnh này làm mới một số cài đặt đã lưu trong bộ nhớ cache và cũng tải lại rails.vim .
Nó giúp tôi làm mới tô sáng cú pháp trong Rails.


Điều này chỉ áp dụng cho rails.vimvà không phải là một giải pháp chung. Nếu không có plugin đó, lệnh này không tồn tại.
tiền ký quỹ

-1

Bạn cũng có thể thử:

CTRL-L

Từ tài liệu VIM ( :h CTRL-L):

Xóa và vẽ lại màn hình. Việc vẽ lại có thể xảy ra muộn hơn, sau khi xử lý lỗi chính tả.


Ctrl-L làm mới màn hình. Không có gì khác biệt nếu bạn thực hiện các thay đổi đối với tệp cú pháp tương ứng.
Alexis Wilke
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.