Nhiều bộ đệm, cùng một tệp, các cài đặt khác nhau


10

Có thể chỉnh sửa một tập tin theo các cài đặt khác nhau cùng một lúc không? Chính xác hơn, tôi muốn có nhiều bộ đệm trong cùng một Vim có cùng một nội dung (thay đổi một bộ đệm ảnh hưởng đến nội dung của bộ đệm khác ngay lập tức), nhưng các vị trí con trỏ khác nhau, các dấu khác nhau, tô sáng cú pháp khác nhau, v.v.

Các trường hợp sử dụng phổ biến bao gồm chỉnh sửa các phần khác nhau của cùng một tệp một cách độc lập (không cần nhập chế độ trực quan trong một trường hợp, phá vỡ lựa chọn chế độ hình ảnh hiện tại trong trường hợp khác) và chỉnh sửa các tệp định dạng hỗn hợp (ví dụ HTML và Javascript) mà không phải chuyển đổi cài đặt . (Cách tiếp cận thay thế cho trường hợp sử dụng thứ hai sẽ là tự động thay đổi cài đặt dựa trên vị trí con trỏ nhưng không nằm trong phạm vi của câu hỏi này.)

Một biên tập viên được nhắc đến thừa nhận có thể gây sốc gọi đây là bộ đệm gián tiếp.

Câu trả lời:


2

Sử dụng nhiều cửa sổ để xem cùng một bộ đệm cho phép bạn xem, chỉnh sửa, chọn, ... trên các phần khác nhau của bộ đệm.

Làm nổi bật cú pháp là một vấn đề phức tạp hơn, tùy thuộc vào chính xác những gì bạn muốn. Vim đã hỗ trợ làm nổi bật các phần khác nhau của bộ đệm với cú pháp khác nhau. Ví dụ: nếu bạn có bộ đệm kiểu tệp html, thì <style>các thẻ sẽ được tô sáng dưới dạng CSS, <script>các thẻ sẽ được tô sáng dưới dạng javascript, v.v. Điều này được thực hiện bằng cách sử dụng :syn includelệnh và sau đó xác định các vùng cú pháp có liên quan mà cú pháp sẽ được áp dụng.

Một cách khác là sử dụng :ownsyntaxlệnh để chỉ định tô sáng cú pháp được sử dụng cho một cửa sổ cụ thể.

Dấu là điểm dính. Các dấu chữ thường là đặc trưng cho bộ đệm và các dấu in hoa là toàn cục, nhưng không có bất kỳ dấu đặc trưng nào cho cửa sổ.


1
Nếu tôi sử dụng nhiều cửa sổ, điều đó có nghĩa là chúng phải ở trên màn hình mọi lúc? Điều gì xảy ra nếu tôi đóng một cửa sổ trong khi một cửa sổ khác hiển thị cùng bộ đệm, vị trí con trỏ trong cửa sổ đó có bị mất không? Có bất cứ điều gì như :ownsyntaxcho các cài đặt khác, chẳng hạn như thụt lề, lệnh trình biên dịch, vv?
Gilles 'SO- ngừng trở nên xấu xa'

@Gilles Bạn có thể có hai cửa sổ chưa từng xuất hiện trên màn hình bằng cách đặt chúng trong các tab riêng biệt, do đó duy trì cài đặt dành riêng cho cửa sổ, vị trí con trỏ, v.v. Điều này có thể giúp ích, tùy thuộc vào trường hợp sử dụng cụ thể của bạn.
Giàu
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.