Subject: bug#24224: Enable 'h, j, k, l' key navigation where ever possible

From: [email-masked]
Date: Sun, 14 Aug 2016 14:10:25 -0400

severity 24224 wishlist
quit

Eli Zaretskii <[email-masked]> writes:

>> From: Mohammed Sadik <[email-masked]>
>> Date: Sun, 14 Aug 2016 12:22:38 +0530
>> 
>> There are several buffers where alphabet keys have no effect.
>> In such buffers, it would be nice to enable the keys h, j, k, and l, for
>> navigation, and even further q for quit (or close the buffer), o for
>> other window, etc.  This might also help resolve the pinky problem a little.
>> 
>> The buffers that can include those key for navigation can be
>> help-mode, apropos-mode, woman, package-menu-mode (package listings),
>> compilation-mode, customize (Custom-mode), info-mode, and so on.
>
> Some of these keys are already bound in some of these modes.  For
> example, h and l have bindings in help-mode.
>
> So I guess this could be some optional minor mode, off by default.
>
> Thanks.

view-mode has code for the k and j bindings, but commented out:

(defvar view-mode-map
  (let ((map (make-sparse-keymap)))
    ...
    (define-key map "q" 'View-quit)
    ...
    ;; (define-key map "k" 'View-scroll-line-backward)
    (define-key map "y" 'View-scroll-line-backward)
    ;; (define-key map "j" 'View-scroll-line-forward)
    ...
    (define-key map "o" 'View-scroll-to-buffer-end)
    ...
    (define-key map "?" 'describe-mode)	; Maybe do as less instead? See above.
    (define-key map "h" 'describe-mode)