Надеемся, что некоторые полезные ответы здесь:
Во-первых, наличие этой строки в .viper
работает для меня. Обратите внимание, что viper-vi-global-user-map
применяется, когда вы находитесь в режиме команда , а не в режиме вставки.
Во-вторых, define-key
- это не команда, это обычная функция, которая просто означает, что ее нельзя вызвать с помощью M-x . Посмотрите эту вики-страницу Emacs , чтобы немного подробнее узнать об этом различии. Но это была хорошая попытка.
В-третьих, global-set-key
- это команда, вы могли бы попытаться внести изменение, используя M-x global-set-key . Но это устанавливает ключ в текущей глобальной карте , которая не совпадает с viper-vi-global-user-map
. В режиме Viper используется множество различных комбинаций клавиш, чтобы Emacs вел себя как vi, но все карты накладываются поверх глобальной карты.
Я предполагаю, что вы обнаружили, что C-v не был связан так, как вы хотите, когда вы находитесь в режиме insert . И это можно решить, добавив это к вашему .viper
:
(define-key viper-insert-global-user-map "\C-v" 'scroll-down)
Наконец, scroll-down
может быть не тем, что вы хотите. down
относится к тексту, перемещающемуся вниз (учитывая перспективу фиксированного окна). C-v обычно связан с 'scroll-up
. Но, может быть, это именно то, что вы хотите.
Предостережение: Я не пользователь режима viper, я даже не знаю, как использовать vi. Так что моя терминология может быть отключена. Но я считаю, что задача изменения вещей в режиме viper очень интересна.
Отредактировано для добавления
Из вашего комментария звучит так, как будто вы хотите, чтобы n был таким же, как то, с чем j связан по умолчанию. Попробуйте добавить это:
(define-key viper-vi-global-user-map "n" 'viper-next-line)
В «нормальном» режиме я сделал Mx описать-ключ j , который сказал мне, что j связан с 'viper-next-line
, а приведенная выше строка будет связывать n к той же рутине. Повторите эти действия для остальных привязок, которые вы хотите переместить.