2009-02-28 25 views
29

Có thể cho các thiết bị đầu cuối để phát hiện ⇧ phím Shift +Enter↵ hay Ctrl +Enter↵ bấm phím?Thiết bị đầu cuối có thể phát hiện <Shift-Enter> hoặc <Control-Enter> không?

Tôi đang cố gắng định cấu hình vim để tạo ánh xạ chính sử dụng các chuỗi này và trong khi chúng hoạt động tốt trong gvim, chúng dường như không hoạt động trong bất kỳ bảng điều khiển đầu cuối nào.

Điều kỳ lạ là mặc dù Ctrl +Enter↵ không được phát hiện trong vim, lập bản đồ Enter↵ để Esc maps đúng, nhưng sau đó nhấn Ctrl + Enter↵ cư xử như Nhập↵!

+0

Bạn có sử dụng vim hoặc vi trong thiết bị đầu cuối không? –

Trả lời

31

Một số thiết bị đầu cuối gửi <NL> khi nhấn <C-Enter>. Điều này tương đương với việc gửi <C-J>.

Để tìm hiểu những gì thiết bị đầu cuối của bạn không có <Shift-Enter>, <Ctrl-Enter><Enter>, đi đến thiết bị đầu cuối của bạn, loại <Ctrl-V> (tương tự như đề nghị sykora cho vim), và gõ vào chuỗi bạn quan tâm.

Sử dụng gnome-terminal, tôi nhận được như sau:

<Enter> : ^M 
<S-Enter> : ^M 
<C-Enter> : <NL> 

Nhìn vào man ascii chỉ ra rằng ^M cho chuỗi <CR>.

Câu trả lời là tùy thuộc vào thiết bị đầu cuối và có một cách dễ dàng để kiểm tra.

+0

Thiết bị đầu cuối gnome của tôi trên cảm biến Ubuntu và 'imap ' bắt được nó. Cảm ơn! –

+0

'' hoạt động trong 'xterm' quá, nhờ – boh

+1

Tôi cũng đang sử dụng gnome-terminal nhưng tôi nhận được kết quả khác nhau: ' :^M', ':^M',' :^M'. Có cách nào để sửa lỗi này không? –

15

Gvim chạy trình quản lý riêng để xử lý thao tác gõ phím và do đó có thể nhận tất cả các tổ hợp phím khác nhau. Vim phụ thuộc vào thiết bị đầu cuối cụ thể để truyền trên phím bấm cụ thể, do đó, việc lấy chìa khóa chỉ tốt hoặc đa dạng như thiết bị đầu cuối.

Một cách bạn có thể tìm hiểu xem bạn có thể làm những gì bạn muốn làm là sử dụng chìa khóa để tìm hiểu những gì được chèn vào. ví dụ Type:

:<C-V><C-Enter> 

tức là thực sự gõ vào kết hợp mà bạn muốn nhấn sau khi đã gõ các tổ hợp phím Control-V. Sau đó làm điều tương tự cho nhập, tức là

:<C-V><Enter> 

Nếu họ mang lại cùng mã, sau đó nhà ga giải thích cả hai tổ hợp phím như mã phím tương tự, và bạn không thể ràng buộc chúng mà không cần can thiệp vào thiết bị đầu cuối.

Trong terminal (urxvt), Control-Enter, Shift-Enter và Enter (tự nó) tất cả tạo ký tự^M, nghĩa là tôi không thể ánh xạ bản đồ mà không ánh xạ đối tượng kia. Điều tương tự cũng xảy ra với Control-Tab và Control-I, và Control-Space và Control- @

EDIT: Sử dụng C-Q thay vì C-V cho Windows.

+0

Dường như trong các mã khác nhau thiết bị đầu cuối là trong thực tế phát sinh: gvim: sản xuất^M vim: sản xuất^M gvim: sản xuất vim: sản xuất^@ Tuy nhiên, tôi dường như không thể ánh xạ^@ một cách thích hợp, khi sử dụng: bản đồ^@ command –

+0

Bạn đang sử dụng thiết bị đầu cuối nào? – sykora

+0

Sử dụng gnome-terminal. –

Các vấn đề liên quan