Я использую Mingw под Windows. Когда я использую ruby (irb), мои «специальные» символы, такие как [] {} и \, не работают. Это из-за моей немецкой клавиатуры, где эти клавиши используются вместе с AltGr (Alt + Ctrl). Я нашел решение для этого здесь или здесь.

Теперь, когда я добавляю строку

"\M-[": "["

в моем файле .inputrc ключ удаления больше не работает. Определяется как обычно:

"\e[3~": delete-char

Нажатие delete просто возвращает [3 , а Ctrl + v, delete возвращает ^[[3~ как и ожидалось.

Каким-то образом эти два определения в .inputrc не работают вместе. Есть идеи?

РЕДАКТИРОВАТЬ:
Это не только ключ удаления, который не работает, все мои другие привязки работают, как:

"\e[1~": beginning-of-line              # home (ok)
"\e[2~": paste-from-clipboard           # insert (ok)
"\e[3~": delete-char                    # delete (PROBLEM)
"\e[4~": end-of-line                    # end (ok)
"\e[5~": history-search-backward        # pageup (ok)
"\e[6~": history-search-forward         # pagedown (ok)

3 ответа3

1

DEL: delete-char

Должно работать на вас.

0

Решением было ввести условную конструкцию init:

$if ruby
  "\M-[": "["
  "\M-]": "]"
  "\M-{": "{"
  "\M-}": "}"
  "\M-\\": "\\"
  "\M-|": "|"
  "\M-@": "@"
  "\M-~": "~"
$else
  "\e[1~": beginning-of-line              # home
  "\e[2~": paste-from-clipboard           # insert
  "\e[3~": delete-char                    # delete
  "\e[4~": end-of-line                    # end
  "\e[5~": history-search-backward        # pageup
  "\e[6~": history-search-forward         # pagedown
$endif

Но оригинальный вопрос: что здесь происходит, все еще существует :)

0

\M- [означает META- [что может быть сделано с помощью ALT- [или ESC, [\e [означает ESC, [но это было только что переопределено ранее

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .