Wiem, że w vimie mogę dodać
set nocompatible
w .vimrc
celu uniknięcia sytuacji, w której klawisze strzałek wyświetlają A, B, C, D w trybie wstawiania.
Ale używam vi Wersja 4.0 (gritter) 12/25/06 .
Jak mogę uzyskać takie samo zachowanie?
== EDYCJA == (1)
Używam wersji vi z Arch Linux, która jest zbudowana z tego repozytorium CVS (ostatnie zatwierdzenie 24 lutego 2007) z następującą komendą:
make PREFIX=/usr LIBEXECDIR=/usr/lib/ex PRESERVEDIR=/var/lib/ex \
TERMLIB=ncurses FEATURES="-DCHDIR -DFASTTAG -DUCVISUAL -DMB -DBIT8"
oraz tezami trzy łatki: fix-tubeize-short-overflow.patch , navkeys.patch i preserve-dir.patch .
== EDYCJA (2) ==
Problemy występują w LXTerminal 0.2.0 , Termite 10-1 , Tilda 1.2.4-1 , Terminator 0.98-1 i xterm 320-2, ale nie w urxvt v9.21 ani w konsolach wirtualnych Linux.
== EDYCJA (3) ==
Według Single Unix Specyfikacja strzałka w lewo, strzałka w dół, strzałka w prawo, strzałka w górę odpowiednio odpowiadają następującym nazwawłaściwości: kcub1
, kcud1
, kcuf1
i kcuu1
. Porównywanie terminfo z wpisami xterm
i rxvt-unicode-256color
dla tych capterms daje:
$ 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'.
Modyfikowanie xterm terminfo wpisu przez substituing '\EOD'
, '\EOB'
, '\EOC'
, '\EOA'
przez '\E[D'
, '\E[B'
, '\E[C'
, '\E[A'
powinno rozwiązać problem, ale jest to dobry pomysł? Może to przerwie korzystanie z klawiszy strzałek w innych programach?
TERM
w bazach danych termcap
lub terminfo
bazach danych nie jest zsynchronizowany z kodami generowanymi przez klawiaturę. Rozwiązaniem nie jest zmiana TERM
, ale sprawdzenie, czy twój vi
link jest połączony z, termcap
albo terminfo
znalezienie kodów klawiszy emitowanych przez klawiaturę, i odpowiednio popraw odpowiednią bazę danych. Może również działać skarga do sysadmin.
terminfo
.