Вызвать одну команду в нормальном режиме с помощью Ctrl-o в Vimpulse? - PullRequest
0 голосов
/ 26 августа 2011

Обычное поведение в vim для C-o в режиме вставки, чтобы позволить пользователю использовать одну команду в нормальном режиме и затем вернуться в режим вставки.

Следуя рекомендациям в этом комментарий , я установил

(vimpulse-imap "\C-o" 'viper-escape-to-vi)

Но когда я нажимаю C-o в режиме вставки, символы «^ O» вставляются в буфер, и я не могу переключиться в обычный режим.Режим для одной команды, как я и ожидал.Я понимаю, что viper-escape-to-vi по умолчанию связан с C-z, но я также не могу переключиться в обычный режим, используя эту комбинацию клавиш (вместо этого в буфере печатается "^ Z").Что я делаю не так?

Кроме того, второй вопрос: я бы хотел, чтобы C-z не был связан режимом viper (или vimpulse), поскольку я использую его для elscreen.Как я могу сказать ему оставить C-z в покое?

Редактировать: Нашел этот бит кода в vimpulse-misc-keybindings.el:

;; temporarily escape to vi state
(define-key viper-insert-basic-map "\C-o" 'viper-escape-to-vi)

Итакдолжны быть определены уже?Не уверен, почему это не работает.

1 Ответ

1 голос
/ 27 августа 2011

Объявление 1) У меня это работает, может, что-то пошло не так с вашим конфигом?

Но вывод странный: единственный способ получить его - вставить в кавычки (или подобное).

viper-escape-to-vi в состоянии вставки привязано к viper-toggle-key (но по умолчанию это Cz), так что смотрите ниже.Опять же, ваш вывод выглядит странно.

Ad 2) Вы должны установить viper-toggle-key для sexp до загрузки viper, либо настроить его.

Для первого (используя для этого клавишу Пауза)

(setq viper-toggle-key [pause])
(require 'viper)

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

Установка там переключателя (чтобы снова сделать паузу) находится на расстоянии (evil-set-toggle-key "<pause>"), это последовательность kbd, а не sexp.Со тоже отлично работает.

...