On Thu, Dec 18, 2025 at 03:50:39PM -0000, Stuart Henderson wrote: > On 2025-12-18, Walter Alejandro Iglesias <[email protected]> wrote: > > On Thu, Dec 18, 2025 at 02:16:26PM -0000, Stuart Henderson wrote: > >> On 2025-12-18, Walter Alejandro Iglesias <[email protected]> wrote: > >> > I found the following in sftp(1) source code: > >> > > >> > $ grep editline /usr/src/usr.bin/ssh/* > >> > sftp.c: fatal("Couldn't initialise editline"); > >> > sftp.c: fatal("Couldn't initialise editline history"); > >> > > >> > I use this line in ~/.editrc: > >> > > >> > bind -v > >> > > >> > That gives me vi-like keybindings in many applications. But it doesn't > >> > work with sftp(1). > >> > >> sftp does use editline, and it does read .editrc. > >> > >> bind -v does do something in sftp (you'll see a behaviour change if you > >> remove it) but it's not normal vi-like handling.. > > > > What I see when I remove 'bind -v' from ~/.editrc is that emacs-like > > bindings work. So, the only effect of 'bind -v' in sftp(1) is to > > deactivate emacs-like bindings. > > editline(7) says: > > The program can switch the default to emacs mode by using the > el_set(3) or el_parse(3) functions, and the user can switch to emacs > mode either in the editrc(5) configuration file or interactively with > the ed-command editor command, in all three cases executing the bind > -e builtin command. > > sftp switches the default using 'el_set(el, EL_EDITOR, "emacs")', but > I don't see anything in editline(7) that suggests you can get back from > there to vi mode. > > you can at least automatically fix the key bindings like this: > > $ cat .editrc > bind -v > sftp:bind -e
I prefer half supported vi bindings to emacs ones. The information is still useful, thank you. > > > -- Walter

