10

Я новичок в Emacs, и я хотел бы начать добавлять некоторые глобальные пользовательские привязки клавиш для общих задач, таких как replace-string , replace-regex и т.д., Которые по умолчанию не имеют их. Я хочу сделать правильный выбор и вижу несколько проблем:

  • Просмотреть все мои варианты - Как я могу увидеть полный диапазон клавиш, которые не связаны во всех режимах, которые я регулярно использую?

  • Совместимость / соглашение. Существуют ли общие неофициальные привязки или общий ключ «пространства пользователя», с которого можно начинать персональные пользовательские привязки?

  • Другие вопросы - Что-нибудь еще, что я должен принять во внимание?

1 ответ1

9

Попробуйте взглянуть на этот вопрос о SO: есть ли какие-либо комбинации клавиш emacs, зарезервированные для пользовательских команд?

Относительно просмотра того, что доступно, есть unbound библиотека (см. Первый ответ на вопрос выше).

Одно соглашение (взято из моего ответа на этот вопрос):

Вы можете переопределить что угодно, но условием является использование Cc l (где l - любая буква).

Как пользователь, вы можете переопределить любой ключ; но обычно лучше придерживаться последовательности клавиш, состоящей из Cc, за которым следует буква (верхний или нижний регистр). Эти ключи «зарезервированы для пользователей», поэтому они не будут конфликтовать с каким-либо должным образом разработанным расширением Emacs. Функциональные клавиши от F5 до F9 также зарезервированы для пользователей. Если вы переопределите какой-либо другой ключ, ваше определение может быть переопределено некоторыми расширениями или основными режимами, которые переопределяют тот же ключ.

Просто помните, что привязки клавиш различны в каждом из различных (основных и вспомогательных) режимов, поэтому то, что доступно в одном буфере, не обязательно доступно в другом. И сделайте привязки клавиш максимально локализованными. Например, если функциональность что-то делает со строкой кода, не привязывайте к ней глобальный ключ, определите ее в соответствующих таблицах ключей (c++-mode-map , ruby-mode-map и т.д.).

Что касается ваших конкретных задач, вы заметили:

  • M-% aka query-replace
  • CM-% aka query-replace-regexp

Кроме того, когда вы ищете (Cs или CM (и обратные варианты)), вы можете набрать M-% (или CM-%), чтобы напрямую ввести query-replace (query-replace-regexp) со строкой поиска в качестве вещь, чтобы заменить ... Довольно удобно.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .