How to provide a true alias key sequence in emacs?
I would like in Emacs a key sequence FOO to be an true alias for a sequence BAR. Whenever FOO is entered it should perform the same action as entering BAR does.
I cannot use something like:
(global-set-key (kbd "FOO") (key-binding (kbd "BAR")))
That binds FOO to the current action for BAR
. If BAR will be later remapped or overwritten or hidden by a minor mode, that will not be reflected by FOO.
I tried to workaround that using:
(global-set-key (kbd "FOO")
(lambda ()
(interactive)
(key-binding (kbd "BAR")))
But that still is not a true alias. The interactive spec for the lambda is not the same as for the action that BAR is bound to. I suppose I can address that using (interactive (advice-eval-interactive ...)), but it seems rater complex for something that sounds like a basic functionality.
So perhaps I missed some Emacs API for doing key aliasing?
emacs key-binding
add a comment |
I would like in Emacs a key sequence FOO to be an true alias for a sequence BAR. Whenever FOO is entered it should perform the same action as entering BAR does.
I cannot use something like:
(global-set-key (kbd "FOO") (key-binding (kbd "BAR")))
That binds FOO to the current action for BAR
. If BAR will be later remapped or overwritten or hidden by a minor mode, that will not be reflected by FOO.
I tried to workaround that using:
(global-set-key (kbd "FOO")
(lambda ()
(interactive)
(key-binding (kbd "BAR")))
But that still is not a true alias. The interactive spec for the lambda is not the same as for the action that BAR is bound to. I suppose I can address that using (interactive (advice-eval-interactive ...)), but it seems rater complex for something that sounds like a basic functionality.
So perhaps I missed some Emacs API for doing key aliasing?
emacs key-binding
add a comment |
I would like in Emacs a key sequence FOO to be an true alias for a sequence BAR. Whenever FOO is entered it should perform the same action as entering BAR does.
I cannot use something like:
(global-set-key (kbd "FOO") (key-binding (kbd "BAR")))
That binds FOO to the current action for BAR
. If BAR will be later remapped or overwritten or hidden by a minor mode, that will not be reflected by FOO.
I tried to workaround that using:
(global-set-key (kbd "FOO")
(lambda ()
(interactive)
(key-binding (kbd "BAR")))
But that still is not a true alias. The interactive spec for the lambda is not the same as for the action that BAR is bound to. I suppose I can address that using (interactive (advice-eval-interactive ...)), but it seems rater complex for something that sounds like a basic functionality.
So perhaps I missed some Emacs API for doing key aliasing?
emacs key-binding
I would like in Emacs a key sequence FOO to be an true alias for a sequence BAR. Whenever FOO is entered it should perform the same action as entering BAR does.
I cannot use something like:
(global-set-key (kbd "FOO") (key-binding (kbd "BAR")))
That binds FOO to the current action for BAR
. If BAR will be later remapped or overwritten or hidden by a minor mode, that will not be reflected by FOO.
I tried to workaround that using:
(global-set-key (kbd "FOO")
(lambda ()
(interactive)
(key-binding (kbd "BAR")))
But that still is not a true alias. The interactive spec for the lambda is not the same as for the action that BAR is bound to. I suppose I can address that using (interactive (advice-eval-interactive ...)), but it seems rater complex for something that sounds like a basic functionality.
So perhaps I missed some Emacs API for doing key aliasing?
emacs key-binding
emacs key-binding
asked Dec 27 '18 at 16:27
Igor BukanovIgor Bukanov
14815
14815
add a comment |
add a comment |
1 Answer
1
active
oldest
votes
You can try:
(global-set-key (kbd "FOO") (kbd "BAR"))
add a comment |
Your Answer
StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "3"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});
function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});
}
});
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fsuperuser.com%2fquestions%2f1388159%2fhow-to-provide-a-true-alias-key-sequence-in-emacs%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
1 Answer
1
active
oldest
votes
1 Answer
1
active
oldest
votes
active
oldest
votes
active
oldest
votes
You can try:
(global-set-key (kbd "FOO") (kbd "BAR"))
add a comment |
You can try:
(global-set-key (kbd "FOO") (kbd "BAR"))
add a comment |
You can try:
(global-set-key (kbd "FOO") (kbd "BAR"))
You can try:
(global-set-key (kbd "FOO") (kbd "BAR"))
answered Dec 28 '18 at 14:41
StefanStefan
907821
907821
add a comment |
add a comment |
Thanks for contributing an answer to Super User!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fsuperuser.com%2fquestions%2f1388159%2fhow-to-provide-a-true-alias-key-sequence-in-emacs%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown