Приведенные выше ответы не сработали для меня.Я просмотрел документацию по viper и нашел две команды (viper-fast-keyseq-timeout) против (viper-ESC-keyseq-timeout).Первый - позволить режиму Vi интерпретировать любые комбинации клавиш, разделенные определенным временем, как макрос Vi.Последнее, кажется, то, что мы хотим, то есть игнорировать особое значение ESC в режиме vi.Установка последнего в 0 решает проблему для меня.(iterm2, mac os X lion)
[ref]
viper-ESC-keyseq-timeout 200 для tty, 0 на оконном дисплее: экранирование последовательностей клавиш, разделенных этимБольшая задержка (в миллисекундах) интерпретируется как команда, игнорируя особое значение ESC в VI.По умолчанию подходит для большинства терминалов.Однако, если ваш терминал работает очень медленно, вы можете немного увеличить его.Вы узнаете, работает ли ваш терминал медленно, если последовательности клавиш ESC, испускаемые клавишами со стрелками, интерпретируются как отдельно вводимые символы (и, следовательно, клавиши со стрелками не будут работать).Если сделать это значение слишком большим, это замедлит вас, поэтому проявляйте сдержанность.
viper-fast-keyseq-timeout 200 Последовательности клавиш, разделенные таким количеством миллисекунд, рассматриваются как макросы клавиатуры в стиле Vi.Если последовательность клавиш определена как такой макрос, он будет выполнен.В противном случае он обрабатывается как обычная последовательность набранных клавиш.Установка слишком высокой переменной может замедлить ваш набор текста.Установка слишком низкого значения может затруднить достаточно быстрый набор макросов.
последовательности ключей viper-translate-all-ESC-key t для tty, ноль для отображения окна Обычно, Viper позволяет Emacs переводить только Emacs.те последовательности клавиш ESC, которые определены в низкоуровневой карте трансляции ключей или карте функциональных клавиш, например, излучаемые стрелкой и функциональными клавишами.Другие последовательности, например, \ e /, обрабатываются как команда ESC, за которой следует /.Это хорошо для людей, которые печатают быстро и стремятся поразить других персонажей сразу после того, как они нажали ESC.Другие люди, такие как Emacs, постоянно переводят последовательности ESC.По умолчанию переводятся все последовательности только при использовании тупого терминала.Это позволяет вам использовать ESC в качестве мета-ключа в режиме вставки.Например, быстрое нажатие ESC x приведет к вводу Mx.Если ваш тупой терминал не такой тупой и понимает мета-ключ, то вам, вероятно, будет лучше установить эту переменную в ноль.Попробуйте и выясните, какой путь вам больше подходит.