Вопрос

Я пытаюсь выучить Emacs, получая привязки ключевых ключей VI.

Использование Viper-Mode, какой правильный способ повторно связать ключ? (Я использую Макет клавиатуры Колемака(вместо QWERTY) Итак, приходится менять такие вещи, как N-> j), но хотелось бы, но хотелось бы работать в Viper-Mode.

Из этого ключевого руководства по связыванию на GNU.ORG:http://www.gnu.org/software/emacs/manual/html_node/viper/key-bindings.html.

Он говорит, что команда поставить в ваш файл .viper:

(define-key viper-vi-global-user-map "\C-v" 'scroll-down)

Это не работает для меня ... на самом деле не уверен, что у меня даже есть функция «Определить ключ» ...

M-x define-key [No match]

Я не уверен, есть ли «определение ключа» на моей версии Emacs?

Это работает, но не в Viper-Mode

(global-set-key "n" "j")

Любая помощь приветствуется. Это мой первый день, используя Emacs, к тому, что это боль в режиме Colemak & Viper, чтобы работать правильно.

Спасибо за любую помощь ...

Это было полезно?

Решение

Надеюсь, некоторые полезные ответы здесь:

Во-первых, имея эту линию в .viper работает на меня. Обратите внимание, что то viper-vi-global-user-map применяется, когда вы находитесь в команда Режим, не вставляйте режим.

Во-вторых, define-key Разве не команда, это обычная функция, которая просто означает, что его нельзя назвать, используя MX.. Отказ Видеть это Emacs Wiki Page Для немного больше деталей на этом различите. Но это была хорошая попытка.

В-третьих global-set-key является команда, вы могли бы попытаться сделать изменения, используя MX Global-Set-Key. Отказ Но, это устанавливает ключ в Текущая глобальная карта, что не то же самое, что viper-vi-global-user-map. Отказ VIPER-MODE использует кучу разных ke'maps, чтобы сделать Emacs вести себя как VI, но все карты наложены на верхнюю часть глобальной карты.

Я предполагаю, что вы нашли, что Резюме не был связан как вы хотите, когда вы находитесь в вставлять режим. И это можно решить, добавив это к вашему .viper:

(define-key viper-insert-global-user-map "\C-v" 'scroll-down)

Наконец, scroll-down не может быть то, что вы хотите. То down Относится к тексту, движущемуся вниз (учитывая перспективу фиксированного окна). Резюме вообще связан с 'scroll-up. Отказ Но, может быть, именно то, что вы хотите.

Предостережение: Я не пользователь Viper-Mode, я даже не знаю, как использовать VI. Так что моя терминология может быть выключена. Но я нахожу решение изменения вещей в Viper-Mode очень интересно.

Отредактировано для добавления

С вашего комментария звучит так, как вы хотите N. быть таким же, как j обязан по умолчанию. Попробуйте добавить это:

(define-key viper-vi-global-user-map "n" 'viper-next-line)

В режиме «нормальный» я сделал Mx описать-ключ j, что сказал мне, что j связан с 'viper-next-line, и вышеуказанная линия будет связывать N. к той же процедуре. Повторите для остальных привязки, которые вы хотите сдвинуть.

Другие советы

В современном времене зла-режим является слой эмуляции VIM для Emacs и настроить его для Колемака, мой https://github.com/wbolster/evil-colemak-basics. Пакет много помогает.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top