Bash: readline+vim вскакивает в cmd режим в forward-history-search и на нажатие Delete

Я использую режим энергии в своем ударе (т.е. Я устанавливаю readline для использования режима энергии через ~/.inputrc).

Если я делаю a history-search-backward и затем history-search-forward в режиме вставки с некоторыми символами, уже введенными, удар переходит к командному режиму, когда вперед - поиск прибывает в конец.

Например, это происходит когда я:

  • Ввести echo "foo"
  • Ввести e
  • Нажмите Up Arrow (быстрые шоу echo "foo" в режиме вставки)
  • Нажмите Down Arrow (быстрые шоу echo "foo" в командном режиме)

Этого не происходит, если я опускаю шаг, где я ввожу e.

Кроме того, удар также переходит к командному режиму каждый раз, когда я нажимаю Delete ключ, плюс он переключает капитализацию.

Например, это происходит когда я:

  • Ввести echi
  • Переместитесь оставленный
  • Пресса Delete (быстрые шоу ecHi в командном режиме)

Это происходит независимое от оставленного перемещения, только буква, которая переключается изменения.

(Первое явление происходит точно тот же путь в ipython, который также использует readline. Второе явление немного отличается в ipython: Нажатие удаляет в командном режиме, делает то, что это, как предполагается, делает, нажатие удаляют в режиме вставки, также делает то, что это, как предполагается, делает, если я не в конце строки, в этом случае это также переходит назад к командному режиму, но не переключает капитализацию.)

РЕДАКТИРОВАНИЕ Для решения проблемы с Delete ключ, помещенный "\e[3~": delete-char в Ваш '~/.inputrc'

Я использую следующее .inputrc:

  1 set editing-mode vi
  2 set keymap vi-command
  3 "\e[A":history-search-backward
  4 "\e[B":history-search-forward
  5 "\e[C":forward-char
  6 "\e[D":backward-char
  7 ##
  8 "j":history-search-forward
  9 "k":history-search-backward
 10 set keymap vi-insert
 11 "\e[A":history-search-backward
 12 "\e[B":history-search-forward
 13 "\e[C":forward-char
 14 "\e[D":backward-char
 15 ##
 16 set show-mode-in-prompt on
 17 ##
 18 set vi-cmd-mode-string "\1\e[2 q\2\1\e[1;31m\2(cmd)\1\e[0m\2"
 19 set vi-ins-mode-string "\1\e[5 q\2(ins)"
 20 ##
 21 set keymap vi-insert
 22 RETURN "\e\n"
 23 set keymap vi-command
 24 v: ""

и следующее .vimrc:

filetype plugin on
set shellslash
set grepprg=grep\ -nH\ $*
filetype indent on
let g:tex_flavor='latex'
set ff=unix
nmap <CR> o<Esc>
set number
set showcmd
1
задан 17 August 2017 в 11:36

0 ответов

Другие вопросы по тегам:

Похожие вопросы: