Sử dụng vim và Caffeine trên cùng một máy


11

Lý lịch

Tôi làm việc tại phòng thí nghiệm nghiên cứu và sử dụng ba hệ điều hành khác nhau hàng ngày. Trên các máy Windows và Mac, tôi sử dụng Caffeine để ngăn các máy đó không bật trình bảo vệ màn hình trong khi tôi làm việc trên một máy khác (Linux không gặp vấn đề này). Thật khó chịu khi phải đăng nhập lại khi tôi quay lại.

Vấn đề

Khi vim hoặc gvim ở chế độ chèn, ký tự <F15>sẽ xuất hiện lẻ tẻ trong tài liệu. Tôi đã theo dõi nó trở lại Caffeine sau một chút nghiên cứu. Trang web của Caffeine nói rằng phần mềm hoạt động bằng cách thỉnh thoảng mô phỏng một <F15>sự kiện nhấn phím:

Trong tất cả các lần nhấn phím có sẵn, F15 có lẽ là ít xâm nhập nhất (tôi chưa bao giờ thấy bàn phím PC có phím đó!) Và ít có khả năng can thiệp vào công việc của bạn.

Vì vậy, Caffeine là thủ phạm rõ ràng. Tuy nhiên, tôi vẫn thích sử dụng trình soạn thảo văn bản yêu thích của mình trên cả ba máy và không có ý định thay đổi điều đó chỉ để phù hợp với việc sử dụng Caffeine.

Câu hỏi

Có điều gì tôi có thể đưa vào vimrcđể làm cho vim bỏ qua <F15>các sự kiện nhấn phím không?


Chỉnh sửa cho rõ ràng

Tôi không thể tắt thời gian chờ bảo vệ màn hình; nó được thiết lập bởi bộ phận CNTT cho mục đích bảo mật. Vì vậy, với công việc của Caffeine, để duy trì tuân thủ, tôi phải tự khóa máy khi bước ra khỏi bàn làm việc. Nó không đến nỗi tệ; nhưng mở khóa chúng cứ sau vài phút là

Ngoài ra, tôi đã không viết Caffeine, vì vậy tôi không biết tại sao nhà phát triển chọn nhấp <F15>một lần một phút. Tôi có thể đã làm điều đó một cách khác biệt, có lẽ với một chuyển động chuột nhẹ hoặc chạm vào bàn di chuột, như @ Random832 đề xuất.


4
Tại sao không tắt chức năng bảo vệ màn hình / thời gian chờ để khóa trên các máy đó? Đó sẽ là một giải pháp sạch hơn nhiều so với việc cấu hình vim để khắc phục hành vi kỳ lạ của Caffeine. Hoặc ít nhất là làm cho Caffeine mô phỏng một cái gì đó giống như <Ctrl>thay vì <F15>.
Ruslan

1
@Ruslan Điểm của việc sử dụng <F15>là nó rất hiếm khi có nghĩa là bất cứ điều gì và thường bị bỏ qua; <Ctrl>Tuy nhiên, có ý nghĩa, và khi được kích hoạt tại thời điểm sai lầm có thể gây ra hành vi ngoài ý muốn.
Kyle Strand

@Ruslan HĐH được bộ phận CNTT cấu hình để khóa sau một thời gian không hoạt động; chạy Caffeine cho phép tôi bỏ qua điều đó, miễn là tôi tự khóa máy của mình khi bước ra khỏi bàn làm việc. Hơn nữa, tôi không có mã nguồn cho Caffeine, vì vậy tôi không thể thay đổi nó.
Jonathan Landrum

Tại sao nó không chỉ mô phỏng sự kiện mà bạn nhận được khi bạn chạm vào bàn di chuột khi nhấn không bật, nhưng nó vẫn tập trung vào cửa sổ bạn đang kết thúc - nhưng qua cửa sổ hiện tại để nó không làm gì cả?
Random832

@ Random832 đó là một câu hỏi hay; Tôi đã không viết chương trình, vì vậy tôi không biết logic đằng sau việc chọn <F15>khác với những gì được đăng trên trang web.
Jonathan Landrum

Câu trả lời:


20

Bạn có thể ánh xạ một khóa tới <nop>(viết tắt của "không hoạt động") để làm cho nó "không làm gì cả".

Điều này sẽ khiến Vim bỏ qua <F15>phím trong tất cả các chế độ:

:noremap <F15> <nop> 
:noremap! <F15> <nop>

Điều này có thể sẽ khắc phục vấn đề của bạn, nhưng tôi chưa kiểm tra nó trong tình huống cụ thể của bạn, vì tôi không có nhiều máy Windows / OSX khác có Caffeine được cài đặt sẵn :-)


Có vẻ như đã làm điều đó! Cảm ơn sự giúp đỡ của bạn.
Jonathan Landrum

1
Cần lưu ý rằng có lẽ các khóa chết như <f15>thường được sử dụng khi Ánh xạ mã khóa nhanh trong thiết bị đầu cuối Vim . Ví dụ về một plugin làm điều đó là rsi.vim .
Peter Rincker
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.