2016-02-13 2 views
2

Я хотел бы установить несколько ключевых привязок по всему миру для всех режимов. Я понимаю, что есть определенные префиксы для перехвата ключей Emacs, которые являются «зарезервированными» для пользователя, но есть ли префикс для брелока, который является «безопасным» для всех разных режимов?Что такое «безопасное» пространство имен пользователей Emacs для ввода ключей?

+0

Предполагая, что вы говорите как пользователь, а не автор пакетов, один из подходов, который я нашел плодотворным, - это выбрать ключ с глобальным определением. Я не использую чрезмерно (например, 'Cz' для минимизации) и перепроверьте это как глобальный префикс. Я обычно нажимаю клавишу, которую я переместил в префикс (например, поместите минимизацию на 'C-z C-z' или somesuch), чтобы я мог получить к ней доступ. –

ответ

1

Безопасный для кого? Библиотека или пользователь?

См. Руководство Elisp, узел Key Binding Conventions, для которых ключи зарезервированы для пользователей, для основных режимов и для второстепенных режимов.

Как вы не говорите, что именно вы делаете, нам невозможно догадаться, к какой категории относится ваш вопрос.

Что касается ключа префикса, вы можете видеть, что вы не должны рассчитывать на использование C-c, C-h или <f5> через <f9>, если вы хотите, чтобы ваш ключ префикса быть «безопасным» во всех контекстах.

+0

Безопасен для пользователя. Явное пространство имен клавиш, где я могу определить привязки клавиш как пользователя, не опасаясь, что он будет конфликтовать с ключевыми словами по умолчанию или ключевыми моментами режимов, которые я могу использовать. – Ana

+0

A ** пользователь ** может определить * любые * привязки клавиш s? Он любит. Единственный способ узнать, задан ли данный ключ по умолчанию глобально или в заданном режиме, - спросить Emacs: 'C-h k' (в этом режиме). В противном случае вы можете получить некоторые рекомендации из раздела «Соглашения о привязке ключей» руководства Elisp, как я уже сказал. – Drew

0

Как указывает @drew, ознакомьтесь с разделом руководства к пособиям для получения некоторых рекомендаций по соглашениям о привязке ключей. Это может быть немного сложной задачей, чтобы связать вещи, особенно когда вы не хотите вмешиваться в стандартные привязки или в конечном итоге иметь привязки привязаны и т. Д.

Проблема с ответом на этот вопрос заключается в том, что ключевые привязки очень важны для личного вкуса. Например, я вижу много предложений, что первое, что вам нужно сделать, это переопределить ключ блокировки кепок как ключ ctrl. Это кажется хорошим советом, поскольку клавиша ctrl часто трудно нажимать комбинации клавиш и может создавать различные проблемы с напряжением. Тем не менее, я не делаю этого, потому что у меня нет проблемы с тем, что Ctrl находится там, где он есть, и что более важно, я хочу иметь ключ ctrl для левой и правой руки для использования. Я нахожу клавиатуру с одним ключом ctrl гораздо более разочаровывающим, чем ключ вниз и очень доступен для моего мизинца!

Другая вещь, которая может затруднить консультацию в этой области, - это вариация, которую вы получаете на разных платформах и в разных средах рабочего стола. Почти все платформы теперь имеют некоторый уровень механизма быстрого доступа к клавиатуре. Проблема заключается в том, что в некоторых случаях различные комбинации клавиш будут «украдены» базовой ОС или чаще - средой рабочего стола. Это часто означает, что для того, чтобы получить идеальную среду emacs, вам часто потребуется также настроить вашу ОС или среду рабочего стола.

Что-то, что может помочь, если я опишу свой подход к решению этой проблемы. Он не даст вам точного или конкретного ответа, но он может предоставить вам некоторые идеи, которые помогут вам найти наиболее подходящее решение для ваших обстоятельств.

  • Я запускаю emacs под Linux и OS X. Я не использую окна и никогда не запускаю emacs под окнами.

  • Я пытаюсь использовать схему для привязки ключей, которая будет работать одинаково в разных средах. Однако мой подход постоянно развивается. Я только начал использовать OSX некоторое время назад, и мне потребовалось немного изменить мою схему, чтобы улучшить согласованность между платформами.

  • Есть два пакета, которые я нахожу очень полезными, пытаясь разобраться в этом. Оба доступны через MELPA. free-keys и пакет bind-keys. Пакет бесплатных ключей может показать вам, какие ключи доступны, а ключи привязки имеют очень полезную команду описания-persoanl-keybindings, которая показывает, какие ключи вы связали, а в некоторых случаях и то, к чему ключ привязан. Я нахожу это чрезвычайно полезной командой для планирования и диагностики проблем.

  • Первоначально мой подход состоял в том, чтобы найти глобальную привязку клавиш для команды, которую я редко или никогда не использую, например C-z => suspend-frame или M-`=> tmm-menu-bar, и undefine. Затем я определял эти ключи как префиксные ключи для моей личной раскладки и определял бы ключи под этим.

Преимущество этого подхода заключается в том, что я могу быть достаточно уверен, что ничто не заставит меня привязки быть затененными или получить заново, и все мои привязки привязаны к отдельному префиксу.

  • Что-то, с чем я сейчас экспериментирую, это использование супер- и гипермодификаторов. В частности, супер модификатор стал легкодоступным, поскольку клавиша «windows» на большинстве клавиатур и в наши дни тривиальна для настройки в большинстве дистрибутивов Linux. Ключевая позиция также близка к позиции клавиши «option» под OSX.

Единственная проблема с использованием этих ключей заключается в том, что они часто используются операционной системой или рабочей средой. В некоторых случаях это легко фиксирует механизм ОС или рабочего окружения, но в других ситуациях кажется, что привязка клавиш слишком тесно связана с ОС или средой рабочего стола, и вы не можете ее изменить. Единственное решение, которое я нашел, - это провести немного проб и ошибок. Однако, как только вы его отсортировали, очень маловероятно, что любые библиотеки или функции emacs будут сжимать ваши привязки, и вряд ли вы сбиваете что-то, о чем вы не знаете. Очень полезные и часто упускаемые модификаторы IMO.

  • , наконец, помните C-h k - этот ключ необходим при попытке работать с этим материалом.
Смежные вопросы