Попробуйте взглянуть на этот вопрос о 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) со строкой поиска в качестве замены ... Довольно удобно.