Làm cách nào để sửa mũi tên Ctrl + trong Vim?


26

Tôi đang sử dụng Putty -> Suse box -> vim 7.2kết hợp để chỉnh sửa và muốn sắp xếp lại tổ hợp Ctrl + mũi tên cho một tác vụ cụ thể. Nhưng vì một số lý do, Vim bỏ qua phím tắt và chuyển sang chế độ chèn và chèn ký tự "D" (cho bên trái) của "C" (cho bên phải).

Phần nào trong cấu hình bàn phím / thiết bị đầu cuối của tôi là lỗi và cách khắc phục?


PuTTY không gửi các chuỗi khác biệt hữu ích cho các mũi tên điều khiển. Không có câu trả lời được đề xuất nào là đúng (hoặc hữu ích).
Thomas Dickey

Câu trả lời:


27

Chỉ ra chính xác chuỗi thoát nào mà thiết bị đầu cuối của bạn gửi cho Ctrl+ mũi tên bằng cách nhập Ctrl+ V, Ctrl+ mũi tên trong chế độ chèn: điều này sẽ chèn ESCký tự đầu (hiển thị như ^[trong vim) theo nghĩa đen, tiếp theo là phần còn lại của chuỗi thoát. Sau đó nói với vim về những chuỗi thoát này với một cái gì đó như

map <ESC>[5D <C-Left>
map <ESC>[5C <C-Right>
map! <ESC>[5D <C-Left>
map! <ESC>[5C <C-Right>

Tôi dường như nhớ lại rằng Putty có cài đặt mặc định cho chế độ Khóa con trỏ ứng dụng bất tiện (tôi quên tại sao), trước tiên bạn có thể muốn chuyển đổi cài đặt này.

Lưu ý rằng mặc dù các chuỗi thoát khác nhau giữa các thiết bị đầu cuối, nhưng xung đột (nghĩa là một chuỗi thoát tương ứng với các khóa khác nhau trong các thiết bị đầu cuối khác nhau) là rất hiếm, do đó không cần phải cố gắng chỉ áp dụng ánh xạ trên một loại thiết bị đầu cuối cụ thể.


Làm thế nào để tôi biết chuỗi thoát nào được gửi?
Alex B

@Alex: Tôi đã cố gắng làm rõ lời giải thích của mình, phàn nàn nếu bạn vẫn không hiểu câu đầu tiên của tôi.
Gilles 'SO- ngừng trở thành ác quỷ'

Bạn cũng có thể chạy od -ahoặc od -cnếu bạn đào bát phân và sau đó nhập các phím trong câu hỏi. Xem "thêm" trong câu trả lời của tôi cho một ví dụ.
msw

Xin lỗi vì đã quay lại câu hỏi này quá muộn, nhưng tôi đã nhận ra rằng PuTTY vẫn gửi các phím con trỏ ứng dụng đến thiết bị đầu cuối, ngay cả sau khi tôi tắt hoàn toàn . Tôi không biết nên làm gì khác để biến nó đi.
Alex B

@Alex: Bạn không cần phải làm cho nó biến mất, bạn có thể nói với các ứng dụng của mình về chúng (điều mà tôi thấy là con đường ít kháng cự nhất). Hoặc bạn có thể thay thế PuTTY bằng một trong những lựa chọn thay thế như mintty cộng với Cygwin ssh (nhưng điều đó không đúng chủ đề cho trang web này).
Gilles 'SO- ngừng trở nên xấu xa'

7

Đặt cược tốt nhất của bạn có lẽ là xem chế độ Khóa con trỏ ứng dụng của PuTTY cấu hình .

Các chuỗi mặc định gửi ESCdưới dạng tiền tố và [theo sau là Append hoặcC Hange hoặc những thứ khác ném bạn vào chế độ chèn.

đã thêm, sau Gilles

Có thể thấy phiên bản rõ ràng hơn của lối thoát ^ V với od (1). Đây là tôi gõ ^ Lên, ^ Xuống, ^ Phải, ^ Còn lại tại thiết bị đầu cuối của tôi:

$ od -a
0000000 esc   [   1   ;   5   A esc   [   1   ;   5   B esc   [   1   ;
0000020   5   C esc   [   1   ;   5   D

Vì vậy, thiết bị đầu cuối của tôi gửi ^[[1;5Akhi tôi nhấn Ctrl+


Tắt chế độ Khóa con trỏ ứng dụng dường như không có ích.
Alex B


0

Đối với vấn đề này và các vấn đề bàn phím vim khác, tôi chỉ cần làm

vim ~/.vimrc
set nocompatible
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.