Tại sao MacVim bắt đầu khác nhau mỗi lần gọi khác?


13

Tôi nhận thấy khi tôi ngồi xuống để thực hiện một số công việc trên MacBook của mình ngày hôm nay, tại một số thời điểm gần đây, một số thứ đã bị làm hỏng với .gvimrccài đặt của tôi : khi tôi khởi chạy MacVim, mọi thứ dường như bình thường ngoại trừ cửa sổ của tôi rất nhỏ (khoảng kích thước mặc định ). Tò mò, tôi đã thử verbose set columns?nói với tôi "180, tập cuối từ ~ / .gvimrc" mặc dù cửa sổ rõ ràng không rộng 180 cột. set columns=180khôi phục cửa sổ về chiều rộng dự kiến.

Sau khi gỡ lỗi và chia đôi các tệp RC thông thường của tôi, tôi nhận thấy có điều gì đó bất thường. Tôi không chắc điều này có liên quan đến kích thước cột của tôi không áp dụng hay không, dù theo cách nào thì nó cũng gây tò mò và tôi không thể tìm ra.

Nếu tôi chạy : mvim -u NONE -c "set columns=100", tôi nhận được một cửa sổ như thế này: mvim 1

Nếu tôi chạy chính xác cùng một lệnh một lần nữa, tôi nhận được điều này: mvim 2

verbose set co?báo cáo lần lượt 100 và 66, trong cả hai trường hợp nói rằng "tập cuối từ đối số -c". Lặp lại lệnh khởi chạy làm cho trạng thái cửa sổ thay thế.

Tôi đã thử nuk .viminfogiữa các lần chạy; nó không có tác dụng

Bây giờ tôi đang sử dụng MacVim snapshot 74, mặc dù tôi đang ở phiên bản cũ hơn khi điều này bắt đầu xảy ra và được nâng cấp để xem liệu đó có phải là một phiên bản không. Tôi đang ở ngày 10.10.3 và có thể hành vi này là do lỗi dành riêng cho MacVim đã xuất hiện do cập nhật hệ điều hành (chỉ xảy ra gần đây). Tuy nhiên, nếu tôi cài đặt MacVim trên máy tính xách tay của vợ tôi (chạy cùng phiên bản HĐH) thì hành vi đó không tái tạo.

Tôi thua lỗ. Điều gì trên trái đất có thể gây ra hành vi này?


EDIT: Sau khi tiếp tục gỡ lỗi, tôi nhận thấy dường như chỉ tái tạo theo cách này nếu tôi có một màn hình ngoài được kết nối với máy tính xách tay. Điều này khiến tôi tin rằng đó là một loại lỗi.

Câu trả lời:


16

Sau khi chơi trò chơi cơ sở mã MacVim trong vài giờ, tôi nghĩ rằng tôi có thể thấy tại sao điều này xảy ra.

Khi MacVim khởi động, nó sẽ đọc vị trí cửa sổ đã lưu trước đó NSUserDefaultsvà cố gắng khôi phục vị trí đó. Tại thời điểm cửa sổ chưa thực sự được hiển thị và nguồn gốc của nó là một số mặc định (có thể là hệ điều hành được chọn) luôn nằm trên màn hình 'chính'. Nếu vị trí trước đó của cửa sổ nằm trên một màn hình khác, việc thay đổi vị trí của cửa sổ sẽ kích hoạt sự kiện "thay đổi kích thước" (có thể đây là lỗi mới hoặc lỗi trong 10.10.3, vì sự kiện "sẽ thay đổi kích thước" tương ứng không phải là tạo ra).

Điều này sẽ khiến MacVim cố gắng thay đổi kích thước phụ trợ Vim, nhưng còn quá sớm để thực hiện quy trình cho trạng thái được sử dụng để thực hiện thay đổi kích thước để được xây dựng chính xác. Do đó, MacVim yêu cầu Vim tự thay đổi kích thước thành giá trị mặc định, điều này khiến cửa sổ bị thu hẹp vào lần tiếp theo MacVim nhận được phản hồi thay đổi kích thước từ phụ trợ Vim (MacVim thay đổi kích thước cửa sổ một cách lười biếng).


EDIT: Thay đổi này sửa lỗi , tôi nghĩ vậy. Nó khiến cho cửa sổ thay đổi kích thước không truyền xuống phần phụ trợ Vim cho đến khi cửa sổ được hiển thị.


1
Liên kết bị hỏng, đó là một sự xấu hổ vì nó nghe thú vị. (Ngoài ra: Tôi yêu việc bạn sử dụng từ "gameunking."): D
Wildcard

@Wildcard Tôi đã cập nhật liên kết để trỏ đến PR mà cuối cùng tôi đã thực hiện thay vì cam kết trong chi nhánh địa phương của tôi (tôi đã xóa khi tôi có quyền truy cập vào kho lưu trữ chính của MacVim).
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.