(Câu trả lời này có thể bị phân mảnh một cách đáng kể, tôi phải tìm một giải pháp nữa vì nó hấp dẫn tôi - không chỉ là tiền thưởng 200: P. và thử nghiệm.)
Tôi hiện có thể tạo lại nó với gvim
trên Linux, là /usr/bin/vim.gnome -g
; chạy như vim -g
không giống nhau.
Delving vào mã: (vô ích trong trường hợp này, nhưng thú vị để làm và học cách làm)
Tôi đã nhìn qua mã nguồn và bây giờ tôi có thể giải thích nó một chút (nhưng không hữu ích!); nó nhận được outfile
FILE (src/globals.h:1004
) được thiết lập (src/main.h:2275
); điều này sau đó được viết vào trong src/getchar.h:1501
, theo phương pháp updatescript
được sử dụng bởi gotchars
(dòng 1215) được sử dụng bởi vgetorpeek
, được sử dụng bởi vgetc
và vpeekc
... (không, tôi không biết nơi này đang diễn ra!) thì chúng được sử dụng ở một số nơi.
Dù sao, tôi cho rằng khóa ở đâu đó trong số src/gui.c
, nhưng tôi không biết tại thời điểm này! Nó cũng có thể là một số chuỗi khóa đang được "gửi" (về thể chất hoặc hầu như, tôi không biết), nhưng nhìn thấy như vấn đề là như nhau trên các nền tảng nó có vẻ có nhiều khả năng là một vấn đề Vim hơn khác.
tình huống Thú vị dẫn đến một lời giải thích có thể xảy ra:
Nó cũng đáng trong khi lưu ý rằng nếu bạn tự động bỏ thuốc lá, gvim -u NONE -w scriptout -c quit
(:quit
sau khi tải) hoặc gvim -u NONE -w scriptout -c quit
(tức :quit
, không bao giờ cho thấy GUI), các tập lệnh tệp được để trống.
Ngoài ra, nếu bạn gvim mở và sau đó gần nó bằng cách sử dụng nút X, ép không phím:
0000000: 80fd 6280 fd63 80fd 62 ..b..c..b
Nếu bạn mở gvim, nhấp vào đi, bấm lại và sử dụng :q
:
0000000: 80fd 6280 fd63 80fd 6280 fd2c 80fd 2e3a ..b..c..b..,...:
0000010: 710d q.
Vì vậy, tôi nghĩ rằng đó là sự kiện cửa sổ được dịch nội bộ sang nội dung khác. 80 fd 62
là trình tự mở và 80 fd 63 80 fd 62
là trình tự đóng.
Tôi cũng đã tìm thấy một cách khác để kích hoạt 80fd
, điều này dẫn tôi đến điều mà một số loại "người dùng có quyền truy cập vào cửa sổ"; theo mặc định với GNOME trong Ubuntu, Ctrl + Alt + S làm điều gì đó với cửa sổ (không thể nhớ nó được gọi là gì; trượt tất cả lên thanh tiêu đề, ứng dụng bên trong mất điều khiển bàn phím, v.v.). gvim ...
(bạn biết lý lẽ!), i<Ctrl + Alt + S (ký hợp đồng) Ctrl + Alt + S (mở rộng) >EscZ Q sản xuất này cho tôi:
0000000: 80fd 6269 3c80 fd63 80fd 623e 1b5a 51 ..bi<..c..b>.ZQ
Tóm tắt: để chúng tôi có những gì tôi tin là giải pháp; gVim bắt các thông điệp cửa sổ dưới dạng nào đó và - cho dù có nên hay không - đặt chúng trong scriptout
của nó. Nếu bạn nghĩ rằng nó không nên (hoặc muốn biết lý do tại sao họ đang ở trong hoặc nếu họ thậm chí có nghĩa là được hoặc cho dù bạn nên quan tâm ở tất cả), yêu cầu trên danh sách Vim, tôi nghĩ.
Khi tôi thử nghiệm bằng cách sử dụng tùy chọn '-W', vim không thêm bất kỳ ký tự thừa nào vào đầu tệp. Bạn nên thử lại mà không có '.vimrc' bằng cách sử dụng' vim -u NONE -W somefile' –
Đó là những gì tôi đã làm… vẫn còn, 'vim -u NONE -W scriptout', ZQ và 'xxd' my_scriptout sẽ hiển thị' 80fd 605a 51 '(..'ZQ) – Benoit
Tôi đã xem xét điều này một vài tuần trước và không thể tái tạo nó trên Linux ... bây giờ tôi biết bạn đang sử dụng gVim Portable (yay!) Tôi sẽ thử lại trên Windows và xem tôi có thể đoán ra được không. (Ngày mai, không phải hôm nay.) –