From: jorge.alfaro-murillo@yale.edu (Jorge A. Alfaro-Murillo)
To: help-gnu-emacs@gnu.org
Subject: Re: Can I use 'C-x o o o o o' instead of C-x o C-x o C-x o C-x o C-x o?
Date: Tue, 28 Apr 2015 10:22:53 -0400 [thread overview]
Message-ID: <87k2wwcoxu.fsf@yale.edu> (raw)
In-Reply-To: 87oam8fjlc.fsf@yale.edu
Jorge A. Alfaro-Murillo writes:
> 張國良 writes:
>
>> Scenario 1 - I split many windows. - I wish to switch to some
>> other windows. - I type C-x o, C-x o, C-x o repeatedly until
>> the cursor landed on the desired window. Is there a way to use
>> C-x o o o instead? I aware that I can use C-u num C-x o, if
>> I know the desired window is num step away. But there are
>> times that I do not know 'num'.
>>
>> Scenario 2 - I use the windmove package. - I bind the
>> windmove-up/down/left/right to C-o i, C-o k, C-o j, C-o l
>> respectively. Now, if I want to windmove to up-left, I type
>> C-o i, C-o j. Is there a way to use C-o i j instead?
>
> You could try something like:
>
> #+BEGIN_SRC emacs-lisp
> (defvar your-extended-keymap (make-sparse-keymap)) (define-key
> your-extended-keymap (kbd "o") 'other-window) (advice-add
> 'other-window
> :after (lambda () (set-transient-map
> your-extended-keymap)))
> #+END_SRC
Sorry, I hit send before finishing, this works:
#+BEGIN_SRC emacs-lisp
(defvar your-extended-keymap (make-sparse-keymap))
(define-key your-extended-keymap (kbd "o") 'your-other-window)
(defun your-other-window ()
(interactive)
(other-window 1)
(set-transient-map your-extended-keymap))
(global-set-key (kbd "C-x o") 'your-other-window)
#+END_SRC
But as Tassilo said, you probably do not want this. Check
ace-window (https://github.com/abo-abo/ace-window) which solves
both scenarios very elegantly.
Best,
--
Jorge.
next prev parent reply other threads:[~2015-04-28 14:22 UTC|newest]
Thread overview: 14+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-04-28 10:56 Can I use 'C-x o o o o o' instead of C-x o C-x o C-x o C-x o C-x o? 張國良
2015-04-28 13:47 ` Tassilo Horn
2015-04-28 13:49 ` Yuri D'Elia
2015-04-28 13:50 ` Jorge A. Alfaro-Murillo
2015-04-28 14:22 ` Jorge A. Alfaro-Murillo [this message]
2015-04-28 14:07 ` Drew Adams
2015-04-28 14:07 ` Phillip Lord
2015-04-28 14:23 ` Tak Kunihiro
2015-04-28 19:04 ` Robert Thorpe
2015-04-30 9:56 ` 張國良
[not found] ` <mailman.1786.1430228989.904.help-gnu-emacs@gnu.org>
2015-04-30 17:29 ` unfrostedpoptart
[not found] <mailman.1779.1430218587.904.help-gnu-emacs@gnu.org>
2015-04-28 17:03 ` Emanuel Berg
2015-04-28 17:48 ` Jorge A. Alfaro-Murillo
2015-04-28 18:19 ` Joe Fineman
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
List information: https://www.gnu.org/software/emacs/
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=87k2wwcoxu.fsf@yale.edu \
--to=jorge.alfaro-murillo@yale.edu \
--cc=help-gnu-emacs@gnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).