Tôi biết rằng trong vim tôi có thể thêm
set nocompatible
trong .vimrc
để tránh rằng phím mũi tên hiển thị A, B, C, D trong chế độ chèn.
Nhưng tôi đang sử dụng vi Phiên bản 4.0 (gritter) 25/12/2016 .
Làm thế nào tôi có thể có được hành vi tương tự?
== CHỈNH SỬA == (1)
Tôi đang sử dụng phiên bản vi từ Arch Linux , được xây dựng từ kho CVS này (lần cam kết cuối cùng vào ngày 24 tháng 2 năm 2007) với lệnh sau:
make PREFIX=/usr LIBEXECDIR=/usr/lib/ex PRESERVEDIR=/var/lib/ex \
TERMLIB=ncurses FEATURES="-DCHDIR -DFASTTAG -DUCVISUAL -DMB -DBIT8"
và với ba bản vá: fix-ốngize-short-overflow.patch , navkeys.patch và reserved-dir.patch .
== CHỈNH SỬA (2) ==
Các sự cố xảy ra trong LXTerminal 0.2.0 , Termite 10-1 , Tilda 1.2.4-1 , Terminator 0.98-1 và xterm 320-2 nhưng không có trong urxvt v9.21 cũng như trong các máy chơi game ảo Linux.
== CHỈNH SỬA (3) ==
Theo đơn Unix Specification trái mũi tên, mũi tên xuống, phải mũi tên, mũi tên lên tương ứng với lần lượt các capname sau: kcub1
, kcud1
, kcuf1
và kcuu1
. So sánh các mục terminfo từ xterm
và rxvt-unicode-256color
cho các capterms này cho:
$ infocmp xterm rxvt-unicode-256color | grep -E 'kcuf1|kcub1|kcud1|kcuu1'
kcub1: '\EOD', '\E[D'.
kcud1: '\EOB', '\E[B'.
kcuf1: '\EOC', '\E[C'.
kcuu1: '\EOA', '\E[A'.
Sửa đổi xterm terminfo nhập bằng substituing '\EOD'
, '\EOB'
, '\EOC'
, '\EOA'
bởi '\E[D'
, '\E[B'
, '\E[C'
, '\E[A'
nên giải quyết vấn đề nhưng nó là một ý tưởng tốt? Có lẽ nó sẽ phá vỡ các chương trình sử dụng phím mũi tên khác?
TERM
trong cơ sở dữ liệu termcap
hoặc terminfo
không đồng bộ với các mã được tạo bởi bàn phím. Giải pháp không phải là thay đổi TERM
, mà là tìm hiểu xem liệu bạn vi
có được liên kết với termcap
hoặc terminfo
tìm mã khóa được phát ra từ bàn phím không và sửa cơ sở dữ liệu tương ứng. Khiếu nại với sysadmin cũng có thể làm việc.
terminfo
.