Попробуйте взглянуть на этот вопрос о SO: есть ли какие-либо комбинации клавиш emacs, зарезервированные для пользовательских команд?
Что касается того, что доступно, есть unbound
библиотека (см. Первый ответ на вопрос выше).
Одно соглашение (взято из моего ответа на этот вопрос ):
Вы можете переопределить все что угодно, но условием является использование C-c l (где lлюбая буква).
Как пользователь, вы можете переопределить любой ключ; но обычно лучше придерживаться последовательности клавиш, состоящей из следующей C-c
за ней буквы (верхнего или нижнего регистра). Эти ключи «зарезервированы для пользователей», поэтому они не будут конфликтовать с каким-либо должным образом разработанным расширением Emacs. Функциональные клавиши F5через F9также зарезервированы для пользователей. Если вы переопределите какой-либо другой ключ, ваше определение может быть переопределено некоторыми расширениями или основными режимами, которые переопределяют тот же ключ.
Просто помните, что привязки клавиш различны в каждом из различных (основных и вспомогательных) режимов, поэтому то, что доступно в одном буфере, не обязательно доступно в другом. И сделайте привязки клавиш максимально локализованными. Например, если функциональность что-то делает со строкой кода, не привязывайте к ней глобальный ключ, определите ее в соответствующих таблицах ключей ( c++-mode-map
, ruby-mode-map
и т. Д.).
Что касается ваших конкретных задач, вы заметили:
- M-% ака
query-replace
- C-M-% ака
query-replace-regexp
Кроме того, когда вы ищете ( C-sили C-M-s(и обратные варианты)), вы можете ввести M-%(или C-M-%), чтобы напрямую ввести query-replace
( query-replace-regexp
) со строкой поиска в качестве замены ... Довольно удобно.