Страницы

Поиск по вопросам

суббота, 14 декабря 2019 г.

Emacs. Можно ли переназначить “без последствий” часть клавиатурных сокращений?

#vim #emacs #hotkeys


Можно ли в Emacs переназначить часть операций с текстом/файлами под более привычные(удобные)
для себя комбинации клавиш, без конфликтов с другими командами? Или стоит изучить те
которые по умолчанию? Пробовал Vim, но там ІМНО не стоит изменять хоткеи по умолчанию,
да и там все довольно логично,да и много команд реализуются одной клавишей, так что
не увидел особой необходимости в замене.
    


Ответы

Ответ 1



Стандартные сочетания архаичны и загадочны, существует несколько подходов в основе. Хорошие примеры: Evil Mode (vim-аддиктам), Spacemacs, Ergo Emacs, Boon, fingers. Технической проблемы тут нет, это вопрос эргономики и управления сложностью конфигурации. Вот из Vim на EMACS можно перейти только благодаря Evil-mode, ценой громоздкого конфига, однако с божьей помощью можно отказаться от Evil-mode, сохранив при том модальность. К вопросу, HJKL по-умолчанию в EMACS выполняют несущественные функции (С-h дублируется ), следовательно, такое можно и перемапить. FBNP-навигацию же, естественную для EMACS, и C-x-... M-x-..., C-c-..., повсеместно используемое - проще оставить нетронутым: (use-package god-mode :bind ( ( "M-i" . god-local-mode ) ( "" . god-local-mode ) ( "C-j" . next-line ) ( "C-k" . previous-line ) ( "C-h" . backward-char ) ( "C-l" . forward-char ) ( "C-d C-f" . delete-forward-char ) ( "C-d C-b" . backward-delete-char-untabify ) ( "C-d C-e" . kill-line ) ( "C-d C-w" . delete-trailing-whitespace ) ( "C-d C-a" . delete-to-begin ) ) ) В стиле Vi, одну клавишу можно использовать для целого ряда действий. Например, удаление строки dd, до конца строки: de, до начала строки: da, вперёд: df, назад: db etc. См. также Hydras. Хороший стиль - повторные нажатия одной клавиши + модификатор: v - старт выделения слова, повторное v - expand-region (увеличить выделение), M-v - contract-region (уменьшить выделение), Shift-V - выделение строки, но и стандартный C-Space продолжает работать. Вариант простого конфига в этом духе Есть альтернативы god-mode, например Modalka.

Ответ 2



Попробовал различные варианты. IMHO стоит изучить клавиатурные комбинации установленные по умолчанию, т.к. и в справке и разной документации везде идут именно они. Как вариант можно назначать неиспользуюмые комбинации или клавиши под свои задачи. Ну, а насчет переназначения стандартных клавиатурных сокращений, то как писал в комментариях @avp, просто потом нужно переназначить и ту функцию, комбинацию которой переназначили другой функции. Например, хотим функцию undo включать по C-z. Смотрим чем занято C-z, нажимаем C-h k C-z: C-z runs the command suspend-frame, which is an interactive compiled Назначаем этой функции другую комбинацию.

Ответ 3



CUA-mode остальное как угодно.

Комментариев нет:

Отправить комментарий