Subject: Re: bug#73813: 30.0.91; icomplete-mode keymap unusable in xterm for for/backward completions

From: Robert Pluim <[email-masked]>
Date: Thu, 17 Oct 2024 15:17:21 +0200

>>>>> On Thu, 17 Oct 2024 12:46:36 +0000, Van Ly <[email-masked]> said:

    Van> Robert Pluim <[email-masked]> writes:

    >> 
    >> Ah, you want C-n and C-p bound in the minibuffer when using icomplete?

    Van> I'd put icomplete-mode and icomplete-vertical-mode in the same category
    Van> for binding interop.

So that would be this:

diff --git a/lisp/icomplete.el b/lisp/icomplete.el
index 540ed2b5819..05914b24d2c 100644
--- a/lisp/icomplete.el
+++ b/lisp/icomplete.el
@@ -178,6 +178,8 @@ icomplete-minibuffer-map
   :doc "Keymap used by `icomplete-mode' in the minibuffer."
   "C-M-i" #'icomplete-force-complete
   "C-j"   #'icomplete-force-complete-and-exit
+  "C-n"   #'icomplete-forward-completions
+  "C-p"   #'icomplete-backward-completions
   "C-."   #'icomplete-forward-completions
   "C-,"   #'icomplete-backward-completions
   "<remap> <minibuffer-complete-and-exit>" #'icomplete-ret)

I donʼt use icomplete or fido, so I have no real opinion to offer
here, except that it would be nice to have bindings that work without
having to modify xtermʼs configuration.

    >> Thatʼs possible, I guess `next-line' and `previous-line' arenʼt that
    >> useful in that context.
    >> 
    >> But this is an area with a lot of history regarding the bindings, so
    >> weʼd need to be careful. Perhaps we should consider '<left>' and
    >> '<right>' instead, like `icomplete-fido'. Iʼm sure opinions will vary
    >> :-)
    >> 

    Van> One more gotcha.  Inside a tmux session on xterm, emacsclient won't see
    Van> C-, and C-. and maybe there are setting changes needed there.

They work for me when using tmux as-is, but not when I use
TERM=xterm-mono inside tmux

Robert
--