Tôi cũng thường sử dụng nhiều màn hình, vì vậy tôi đã thực hiện một cách giải quyết đơn giản cho đến khi vim thực hiện tính năng này. Sử dụng tập lệnh lua có tên gitv, tôi có thể mở tệp trên nhiều phiên bản GVIM cùng một lúc. Về cơ bản, khi có hai phiên bản GVIM có tên GVIM1 và GVIM2, điều tôi đã làm chỉ đơn giản là đảm bảo rằng chỉ có một tệp có thể chỉnh sửa cùng một lúc và tất cả các tệp khác là người xem. (Mọi thứ được thực hiện tự động mà không cần nhắc.)
Quy trình làm việc: Hiện tại, gitv được thiết kế cho kho git, vì vậy nó chỉ có thể được sử dụng cho các tệp trong kho git. Bạn có thể dễ dàng thay đổi hành vi mặc định này bằng cách sửa đổi hàm lsFiles ().
Để mở a.txt đầu tiên trên GVIM1, hãy sử dụng
$ gitv gvimr GVIM1 a.txt
Điều này sẽ mở một cửa sổ gvim nếu không có. Sau đó, để mở a.txt tương tự trên một phiên bản GVIM2 khác, hãy sử dụng
$ gitv gvimr GVIM2 a.txt
(hoặc bạn có thể tạo một bí danh như $ gvim2 a.txt)
Sau đó, gitv trong nội bộ thực hiện như sau:
- tìm tất cả các phiên bản của gvim có "a.txt" mở. (Trong trường hợp này, GVIM1)
- đặt tất cả các bộ đệm a.txt đó là "chỉ đọc", "có thể định danh" và "tự động đọc".
- Bộ đệm đã được sửa đổi sẽ được ghi vào đĩa trước khi đặt "readonly".)
- xóa tập tin trao đổi.
- mở lại a.txt trên GVIM2. (gvim có thể mở tệp đó mà không gặp sự cố vì không có tệp hoán đổi.)
Nếu bạn muốn chỉnh sửa a.txt trên màn hình 1 thay vì màn hình 2, hãy làm điều này để chuyển đổi bộ đệm hoạt động: $ gitv gvimr GVIM1 a.txt (hoặc gvim1 a.txt) Điều này có thể được thực hiện dễ dàng hơn trong gvim1 bằng cách sử dụng ctrl + g + a.txt
(Điều này sẽ tự động đặt cùng một bộ đệm mở trong các trường hợp khác của gvim "chỉ đọc" để ngăn ngừa hỏng dữ liệu.)
gitv có thể được tải xuống tại đây: http://code.google.com.vn/p/gitv/
Nó chỉ được thử nghiệm trên linux gvim, nhưng nó có thể dễ dàng được chuyển sang MacVIM.