Fiz uma incursão rápida no /usr/src/bin/ksh no meu sistema OpenBSD, vendo como eu tinha as fontes reais verificadas de qualquer maneira. Eu tive uma rápida olhada em c_ksh.c , emacs.c e vi.c e parece que o modo Vi foi reequipado em pdksh de nsh em algum ponto (por volta de 1989/1990). As palavras exatas usadas são
/* $OpenBSD: vi.c,v 1.55 2018/01/16 22:52:32 jca Exp $ */
/*
* vi command editing
* written by John Rochester (initially for nsh)
* bludgeoned to fit pdksh by Larry Bouzane, Jeff Sparkes & Eric Gisin
*
*/
As funções bind -able estão todas em emacs.c , assim como a função x_bind() que é chamada pelo bind construído, enquanto vi.c parece ter sua própria implementação de algumas delas em diferentes nomes que não são chamados de x_bind() .
Portanto, acho que posso concluir que o bind builtin é um no-op no modo Vi neste shell específico.
ATUALIZAÇÃO (2018-02-04): Depois de relatar isso para a lista openbsd-misc , foi confirmado que bind de fato não faz nada no modo de edição de linha de comando do Vi. Um patch irá modificar o manual ksh no OpenBSD para que isso seja mencionado:
bind string=[editing-command] ...In Emacs editing mode, the specified editing command is bound to the given
string. Future input of thestringwill cause the editing command to be immediately invoked. Bindings have no effect in Vi editing mode.