Бутона DEL и стоте му превъплъщения
Във FreeBSD-то имах един проблем, който ми тровеше нервите - бутона DEL или не работеше или имаше собствено мнение какво трябва да прави. Това му поведение се държеше както в шела (csh), така и във Vim.
Какво точно ставаше:
- DEL се държи като BACKSPACE - трие знака от ляво на курсора
- при натискане на DEL се изписва ?^ или ?H или нещо подобно
- при натискане на DEL просто не се случва нищо
Изметох Гугъл за отговори какво става с мен и накрая се оказа че имам полтъргайст в контролера на клавиатурата.
Майтап
Ама се оказа че проблема с клавишите DEL и BACKSPACE е толкова заплетен, че чак ми стана чудно как в Windows и Linux до сега не съм имал проблеми. Ето ви един примерен документ да прочетете за какво става въпрос.
Е, оказа се че тъпия проблем има тъпо решение. Във Vim командата
:fixdel
оправя всичко и съответно може да бъде добавена в ~/.vimrc
За csh има подобна магия и това е:
if ($term == "xterm" || $term == "vt100" || $term == "rxvt" \
|| $term == "vt102" || $term !~ "con*") then
# bind keypad keys for console, vt100, vt102, xterm
bindkey "\e[1~" beginning-of-line # Home
bindkey "\e[7~" beginning-of-line # Home rxvt
bindkey "\e[2~" overwrite-mode # Ins
bindkey "\e[3~" delete-char # Delete
bindkey "\e[4~" end-of-line # End
bindkey "\e[8~" end-of-line # End rxvt
endif
bindkey ^? delete-char # for console
bindkey ^[[3~ delete-char # for xterm
Идеята на последните два реда обезмисля целия if-endif блок преди това. При мен работи само така - и с двете неща накуп
